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

    Admin-tier read + write over bank. Operators onboard new partner banks here; the DB row set is now authoritative (the historical compile-time BankId literal union is retained as a string alias for self-doc, not as a constraint).

    Bank-shaped vendors (dart, fib) get special-case behavior across services — see BankVendor in db/drizzle/schema/product_vendor.ts. New banks created here arrive without that pairing and stay non-bank from a route's perspective unless someone wires up a corresponding vendor entry separately.

    Index
    db: B2bDatabase
    • Create a new bank. The slug (id) is the public-facing identifier and must match ^[a-z][a-z0-9_-]{1,31}$ to keep it URL- and grep-friendly. Returns BANK_ALREADY_EXISTS if a bank with the same slug is already onboarded.

      Parameters

      • input: {
            data: {
                dashboardDomain?: string | null;
                description?: string | null;
                fdicCert?: string | null;
                name: string;
                routingNumber?: string | null;
                theme?: BankDashboardTheme | null;
            } & BankInstructionsData;
            id: string;
        }

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

    • Search banks — always paginated, pageSize defaulting to 50, ordered by name unless orderBy says otherwise. total is a count(*) OVER () window over the full filtered set and hasNext the limit(pageSize + 1) sentinel, so the bank is a first-class entity selector alongside customers / organizations / identities. q is a free-text match over the bank name + slug (externalId).

      A caller that wants every match pages through with searchIterator, or bounds the page to what it asked for ({ ids, pageSize: ids.length }). There is deliberately no "omit the page size to get everything" mode: the cap it hides is invisible at the call site and only bites once the table outgrows the default.

      Parameters

      • input: {
            dashboardDomains?: string[];
            dashboardEnabled?: boolean;
            ids?: string[];
            orderBy?: DbOrderByCriterion<
                Omit<
                    PgTableWithColumns<
                        {
                            columns: {
                                achInstructions: PgBuildColumn<
                                    "bank",
                                    Set$Type<PgJsonbBuilder, AchInstructionData>,
                                    {
                                        data: AchInstructionData;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                createdAt: PgBuildColumn<
                                    "bank",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: Instant;
                                        dataType: "custom";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                dashboardDomain: PgBuildColumn<
                                    "bank",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                defaultCustomerPartnerRank: PgBuildColumn<
                                    "bank",
                                    PgSmallIntBuilder,
                                    {
                                        data: number;
                                        dataType: "number int16";
                                        driverParam: (...)
                                        | (...);
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                description: PgBuildColumn<
                                    "bank",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                externalId: PgBuildColumn<
                                    "bank",
                                    Set$Type<SetNotNull<(...)>, string>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                fdicCert: PgBuildColumn<
                                    "bank",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                id: PgBuildColumn<
                                    "bank",
                                    HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                    {
                                        data: number;
                                        dataType: "number int32";
                                        driverParam: (...) | (...);
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: "byDefault";
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                name: PgBuildColumn<
                                    "bank",
                                    SetNotNull<PgTextBuilder<(...)>>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                routingNumber: PgBuildColumn<
                                    "bank",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                rtpInstructions: PgBuildColumn<
                                    "bank",
                                    Set$Type<PgJsonbBuilder, AchInstructionData>,
                                    {
                                        data: AchInstructionData;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                swiftWireInstructions: PgBuildColumn<
                                    "bank",
                                    Set$Type<PgJsonbBuilder, Record<(...), (...)>>,
                                    {
                                        data: Record<(...), (...)>;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                theme: PgBuildColumn<
                                    "bank",
                                    Set$Type<PgJsonbBuilder, BankDashboardTheme>,
                                    {
                                        data: BankDashboardTheme;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                updatedAt: PgBuildColumn<
                                    "bank",
                                    SetHasDefault<SetHasDefault<(...)>>,
                                    {
                                        data: Instant;
                                        dataType: "custom";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                usWireInstructions: PgBuildColumn<
                                    "bank",
                                    Set$Type<PgJsonbBuilder, UsWireInstructionData>,
                                    {
                                        data: UsWireInstructionData;
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                                wireEmailFromDomains: PgBuildColumn<
                                    "bank",
                                    SetHasDefault<SetNotNull<(...)>>,
                                    {
                                        data: (...)[];
                                        dataType: "object json";
                                        driverParam: unknown;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: true;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: true;
                                        tableName: "bank";
                                    },
                                >;
                                wireEmailLocalPart: PgBuildColumn<
                                    "bank",
                                    PgTextBuilder<[(...), ...(...)[]]>,
                                    {
                                        data: string;
                                        dataType: "string";
                                        driverParam: string;
                                        enumValues: undefined;
                                        generated: undefined;
                                        hasDefault: false;
                                        hasRuntimeDefault: false;
                                        identity: undefined;
                                        isAutoincrement: false;
                                        isPrimaryKey: false;
                                        name: string;
                                        notNull: false;
                                        tableName: "bank";
                                    },
                                >;
                            };
                            dialect: "pg";
                            name: "bank";
                            schema: "b2b";
                        },
                    >,
                    "enableRLS",
                >,
                "name"
                | "createdAt"
                | "updatedAt",
            >[];
            page?: number;
            pageSize?: number;
            q?: string;
        } = {}
        • OptionaldashboardDomains?: string[]
        • OptionaldashboardEnabled?: boolean
        • Optionalids?: string[]
        • OptionalorderBy?: DbOrderByCriterion<
              Omit<
                  PgTableWithColumns<
                      {
                          columns: {
                              achInstructions: PgBuildColumn<
                                  "bank",
                                  Set$Type<PgJsonbBuilder, AchInstructionData>,
                                  {
                                      data: AchInstructionData;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              createdAt: PgBuildColumn<
                                  "bank",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: Instant;
                                      dataType: "custom";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              dashboardDomain: PgBuildColumn<
                                  "bank",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              defaultCustomerPartnerRank: PgBuildColumn<
                                  "bank",
                                  PgSmallIntBuilder,
                                  {
                                      data: number;
                                      dataType: "number int16";
                                      driverParam: (...)
                                      | (...);
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              description: PgBuildColumn<
                                  "bank",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              externalId: PgBuildColumn<
                                  "bank",
                                  Set$Type<SetNotNull<(...)>, string>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              fdicCert: PgBuildColumn<
                                  "bank",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              id: PgBuildColumn<
                                  "bank",
                                  HasIdentity<SetIsPrimaryKey<(...)>, "byDefault">,
                                  {
                                      data: number;
                                      dataType: "number int32";
                                      driverParam: (...) | (...);
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: "byDefault";
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              name: PgBuildColumn<
                                  "bank",
                                  SetNotNull<PgTextBuilder<(...)>>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              routingNumber: PgBuildColumn<
                                  "bank",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              rtpInstructions: PgBuildColumn<
                                  "bank",
                                  Set$Type<PgJsonbBuilder, AchInstructionData>,
                                  {
                                      data: AchInstructionData;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              swiftWireInstructions: PgBuildColumn<
                                  "bank",
                                  Set$Type<PgJsonbBuilder, Record<(...), (...)>>,
                                  {
                                      data: Record<(...), (...)>;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              theme: PgBuildColumn<
                                  "bank",
                                  Set$Type<PgJsonbBuilder, BankDashboardTheme>,
                                  {
                                      data: BankDashboardTheme;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              updatedAt: PgBuildColumn<
                                  "bank",
                                  SetHasDefault<SetHasDefault<(...)>>,
                                  {
                                      data: Instant;
                                      dataType: "custom";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              usWireInstructions: PgBuildColumn<
                                  "bank",
                                  Set$Type<PgJsonbBuilder, UsWireInstructionData>,
                                  {
                                      data: UsWireInstructionData;
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                              wireEmailFromDomains: PgBuildColumn<
                                  "bank",
                                  SetHasDefault<SetNotNull<(...)>>,
                                  {
                                      data: (...)[];
                                      dataType: "object json";
                                      driverParam: unknown;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: true;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: true;
                                      tableName: "bank";
                                  },
                              >;
                              wireEmailLocalPart: PgBuildColumn<
                                  "bank",
                                  PgTextBuilder<[(...), ...(...)[]]>,
                                  {
                                      data: string;
                                      dataType: "string";
                                      driverParam: string;
                                      enumValues: undefined;
                                      generated: undefined;
                                      hasDefault: false;
                                      hasRuntimeDefault: false;
                                      identity: undefined;
                                      isAutoincrement: false;
                                      isPrimaryKey: false;
                                      name: string;
                                      notNull: false;
                                      tableName: "bank";
                                  },
                              >;
                          };
                          dialect: "pg";
                          name: "bank";
                          schema: "b2b";
                      },
                  >,
                  "enableRLS",
              >,
              "name"
              | "createdAt"
              | "updatedAt",
          >[]
        • Optionalpage?: number

          1-based page; defaults to 1.

        • OptionalpageSize?: number
        • Optionalq?: string

      Returns Promise<{ ok: true; value: { hasNext: boolean; items: Bank[]; total: number } }>

    • Update mutable fields on a bank. Pass null for nullable fields to clear them. Omitting a field leaves it untouched. The slug (id) is not editable — references across the system store the literal slug.

      Parameters

      • input: {
            data: {
                dashboardDomain?: string | null;
                description?: string | null;
                fdicCert?: string | null;
                name?: string;
                routingNumber?: string | null;
                theme?: BankDashboardTheme | null;
                wireEmailFromDomains?: string[];
                wireEmailLocalPart?: string | null;
            } & BankInstructionsData;
            id: string;
        }

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