@cfxlabsinc/b2b-services
    Preparing search index...

    Type Alias PinnedMatcherCriteria

    PinnedMatcherCriteria: Partial<
        {
            bankId: BankId;
            cashDepositRetailerId: string;
            countryCode: string;
            customerId: string;
            customerStatus: NonNullable<MatcherCriteria["customerStatus"]>;
            dayOfWeek: number;
            entityStatus: NonNullable<MatcherCriteria["entityStatus"]>;
            entityType: "IDENTITY" | "ORGANIZATION";
            hasIdentityDocument: boolean;
            identityId: string;
            ledgerAccountBalance: string;
            ledgerAccountId: string;
            organizationId: string;
            paymentInstrumentProviders: NonNullable<
                MatcherCriteria["paymentInstrumentProviders"],
            >;
            paymentInstrumentStatus: NonNullable<
                MatcherCriteria["paymentInstrumentStatus"],
            >;
            placement: true;
            productId: Product["id"];
            programIds: string[];
            regionCode: string;
            sourceAmount: string;
            sourceChain: SelectChain["key"];
            sourceCurrency: string;
            sourceWalletType: SourceWalletType;
            speed: Speed;
            systemInitiated: boolean;
            targetAmount: string;
            targetCurrency: string;
            timeOfDay: string;
            usage24hCount: string;
            usage24hUsd: string;
            usage30dCount: string;
            usage30dUsd: string;
            usage7dCount: string;
            usage7dUsd: string;
            usageCalendarMonthCount: string;
            usageCalendarMonthUsd: string;
            vendorId: Vendor;
            verificationByo: boolean;
            virtualAccountId: string;
            virtualAccountNumber: string;
            virtualAccountProvider: string;
            virtualAccountStatus: "ACTIVE"
            | "PENDING"
            | "FAILED"
            | "INACTIVE";
        },
    >

    JSON-serializable shape of MatcherCriteria. Every numeric field (BigNumber | number) is rendered as its decimal string form because JSON.parse cannot reconstruct a BigNumber and any pin we audit must survive a jsonb round-trip without lossy Number coercion.

    Used as the $type<> for product_quote.data (the persisted criteria snapshot the resolver evaluated against) and produced by toPinnedCriteria in product-services/src/internal/pinnedCriteria.ts — that codec lives outside the schema module so this file stays free of BigNumber-arithmetic code.