Verxio Protocol

Validate Voucher

Fetch voucher data for inspection and display. This function returns voucher details without performing validation checks - validation happens during redemption. This approach provides better UX by allowing applications to display voucher details without requiring redemption context.

import { validateVoucher } from '@verxioprotocol/core'
import { publicKey } from '@metaplex-foundation/umi'

const validation = await validateVoucher(context, {
  voucherAddress: publicKey('VOUCHER_ADDRESS'),
})

Return Value

{
  voucher: {
    type: string,
    value: number,
    currentUses: number,
    maxUses: number,
    expiryDate: number,
    conditions: Array<{
      type: string,
      value: number,
      operator: string
    }>,
    description: string,
    merchantId: string,
    status: string,
    redemptionHistory: Array<{
      timestamp: number,
      value: number,
      transactionId: string,
      items: string[],
      totalAmount: number,
      discountApplied: number
    }>
  },
  errors: string[] // Empty array if voucher found successfully
}

Important Note

Merchant validation and business logic validation (expiry, usage limits, etc.) are performed during theredeemVoucher operation, not during validation. This separation allows for better user experience where voucher details can be displayed without requiring redemption context.