@cfxlabsinc/b2b-services
    Preparing search index...
    type WithdrawalLegInput = {
        bankId: TransactionLeg["bankId"];
        bankTransactionId: TransactionLeg["bankTransactionId"];
        debit: ChainSettlement | null;
        feeCollectorCustomerId: TransactionLeg["counterpartyCustomerId"];
        feeCredits: readonly {
            amount: BigNumber;
            customerId: TransactionLeg["customerId"];
            ledgerAccountId: NonNullable<TransactionLeg["ledgerAccountId"]>;
            settlement: ChainSettlement;
            walletAddress: string;
        }[];
        method: Transaction["method"];
        platformMovements: readonly PlatformMovement[];
        productQuote: Pick<SelectProductQuote, "targetAmountAfterFees"> & {
            id: TransactionLeg["productQuoteId"];
            sourceAmount: BigNumber;
            sourceCurrency: string;
            targetCurrency: string | null;
            totalFees: BigNumber | null;
        };
        quote: Pick<SelectWithdrawalQuote, "walletAddress" | "deviceLocation"> & {
            identityId: TransactionLeg["identityId"];
            organizationId: TransactionLeg["organizationId"];
            paymentInstrumentId: TransactionLeg["paymentInstrumentId"];
        };
        return: ChainSettlement
        | null;
        statusUpdates: readonly {
            createdAt: Temporal.Instant;
            reason: string | null;
            status: SelectWithdrawal["status"];
        }[];
        withdrawal: Pick<
            SelectWithdrawal,
            "externalId"
            | "status"
            | "receiptId"
            | "returnReceiptId"
            | "feeSweepTxId",
        > & {
            createdAt: Temporal.Instant;
            customerId: TransactionLeg["customerId"];
            ledgerAccountId: TransactionLeg["ledgerAccountId"];
        };
    }
    Index

    The bank the withdrawal settled at: its bank transaction's, else the quote's.

    The reconciled bank transaction's external id.

    debit: ChainSettlement | null

    receiptId's on-chain transaction.

    feeCollectorCustomerId: TransactionLeg["counterpartyCustomerId"]

    The customer that owns the FEE backoffice wallet; a fee debit's counterparty.

    feeCredits: readonly {
        amount: BigNumber;
        customerId: TransactionLeg["customerId"];
        ledgerAccountId: NonNullable<TransactionLeg["ledgerAccountId"]>;
        settlement: ChainSettlement;
        walletAddress: string;
    }[]

    The fee sweep's MOVEUSD credits, once per ledger account holding a credited address.

    product.method.

    platformMovements: readonly PlatformMovement[]

    CFX-owned accounts the debit or return transaction moved.

    productQuote: Pick<SelectProductQuote, "targetAmountAfterFees"> & {
        id: TransactionLeg["productQuoteId"];
        sourceAmount: BigNumber;
        sourceCurrency: string;
        targetCurrency: string | null;
        totalFees: BigNumber | null;
    }
    quote: Pick<SelectWithdrawalQuote, "walletAddress" | "deviceLocation"> & {
        identityId: TransactionLeg["identityId"];
        organizationId: TransactionLeg["organizationId"];
        paymentInstrumentId: TransactionLeg["paymentInstrumentId"];
    }
    return: ChainSettlement | null

    returnReceiptId's on-chain transaction.

    statusUpdates: readonly {
        createdAt: Temporal.Instant;
        reason: string | null;
        status: SelectWithdrawal["status"];
    }[]

    The status history, for updatedAt and failureReason.

    withdrawal: Pick<
        SelectWithdrawal,
        "externalId"
        | "status"
        | "receiptId"
        | "returnReceiptId"
        | "feeSweepTxId",
    > & {
        createdAt: Temporal.Instant;
        customerId: TransactionLeg["customerId"];
        ledgerAccountId: TransactionLeg["ledgerAccountId"];
    }