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

    Create / edit / soft-delete for the admin RouteFusion program registry.

    routeFusionProgramId is set once at creation and is immutable thereafter (like Victor's victorId): it is the program id stored on enrolled customers' customer.data.routeFusionProgramId, so re-pointing it would silently orphan every enrolled customer. name / description / active are editable. The org credential is not stored here — the worker holds a single org JWT from env. The orphan-guard on delete (block while customers are still enrolled) lives at the dashboard server-action layer, which has both this + the customer service.

    Index
    • Parameters

      • args: {
            active?: boolean;
            bankId?: string;
            description?: string | null;
            name: string;
            routeFusionProgramId: string;
        }
        • Optionalactive?: boolean
        • OptionalbankId?: string

          Partner bank fronting this program's virtual accounts, as its slug (e.g. "state_street"). Optional today — defaults to DEFAULT_BANK_ID — because a later task makes the admin dashboard pass this explicitly; it will become required once that lands.

        • Optionaldescription?: string | null
        • name: string
        • routeFusionProgramId: string

      Returns Promise<
          | { ok: true; value: RouteFusionProgram }
          | { error: ServiceError; ok: false },
      >

    • Parameters

      • args: {
            data: {
                active?: boolean;
                bankId?: string;
                description?: string | null;
                name?: string;
            };
            id: string;
        }

      Returns Promise<
          | { ok: true; value: RouteFusionProgram }
          | { error: ServiceError; ok: false },
      >