Skip to content

Upsider ​

法人カードサービス Upsider(https://up-sider.com/)向けのタスクです。 カードの新規発行、上限変更、カード情報の取得、Slack 上の取引承認の自動クリックなどに対応します。

項目値
CSV site 列の値Upsider
対応エンジンPC (Chromium)

このページの読み方

各モードについて以下を記載しています。

  • 必須 … タスクに必ず入れる必要がある CSV 列
  • 任意 … 入っていれば使われる列
  • 動作 … 主要なステップ
  • 特記 … 注意点や使い方のコツ

モード名は CSV の mode 列にそのまま記入します(小文字化されます)。 別名がある場合はどちらでも指定できます。

すべてのモードで Upsider のログイン状態が前提です。ログイン情報(email または loginId + loginPass)は別途タスクに必要です。ログイン時は 2 要素認証コードの手動入力が必要になる場合があります(「コード入力してください」と表示されたら、開いているブラウザで手入力してください)。

extra3 はどのモードでも永続ブラウザのプロファイル名として使われます(未指定で 1)。同じ値を使うとログインセッションを再利用でき、別の値にすると別セッションとして扱われます。

モード名に Android を付けると、接続した Android 実機で実行できます(対象: すべてのモード)。詳しくは タスクの作成 を参照してください。

カード情報取得 ​

GetList / list ​

現在保有しているカード一覧をスクレイピングして CSV ファイルに出力します。

  • 必須: なし(ログイン済みセッションで自動実行)
  • 任意: なし
  • 動作:
    1. ブラウザを起動してログイン確認
    2. カード一覧 API(/cards/search?type=NORMAL)を呼び出し
    3. nextPageCursor でページネーションして全ページを取得
    4. ID / ラベル / 番号 / 有効期限 / CVV / 保有者名 を抽出
    5. CSV ファイルとして出力(ユーザーデータ内の export フォルダに Upsider_<日時>.csv)
    6. 保存先パスを Discord へ通知(個人用チャンネル+共有チャンネル)
  • 特記:
    • 出力される CSV の列は userAccountId, cardId, cardLabel, cardNumber, userFirstName, userLastName, expiredMonth, expiredYear, cvv, nextPageCursor です。カード番号・CVV が平文で含まれるため、ファイルの取り扱いにご注意ください。
    • カード情報の取得は 1 枚ごとに最大 3 回まで自動リトライします(リトライ中は黄色表示)。
    • タスクの入力欄への書き戻しはありません。結果は CSV ファイルと Discord 通知で受け取ります。

上限変更(一括) ​

MonthlyLimit / monthly ​

全カードの月間利用上限を一括で変更します。

  • 必須: extra1(新しい月間上限金額・整数)
  • 任意: なし
  • 動作:
    1. extra1(新しい上限金額)が入力されているか確認
    2. ログイン確認
    3. カード一覧 API を呼び出し、全ページから userAccountId を収集
    4. 月間上限更新 API を呼び出し(userAccountIdList と newUsageLimit を送信)
    5. 全件処理完了
    6. 更新件数・新しい上限金額を Discord へ通知(個人用チャンネル+共有チャンネル)
  • 特記:
    • extra1 が未指定だと「【Extra1】に新しい月間上限金額を入力してください」で停止します。
    • 対象は全カードで、個別カードの除外はできません。
    • タスクの入力欄への書き戻しはありません。結果は UPSIDER 上の反映と Discord 通知で確認します。

DailyLimit / daily ​

全カードの日間利用上限を一括で変更します。

  • 必須: extra1(新しい日間上限金額・整数)
  • 任意: なし
  • 動作: MonthlyLimit と同じフロー(更新 API のエンドポイントが日間用に変わるだけ)
  • 特記:
    • extra1 が未指定だと「【Extra1】に新しい日間上限金額を入力してください」で停止します。
    • 対象は全カードで、個別カードの除外はできません。
    • タスクの入力欄への書き戻しはありません。結果は UPSIDER 上の反映と Discord 通知で確認します。

カード発行 ​

Create ​

バーチャルカードを新規発行します。1 回の実行で複数枚発行できます。

  • 必須: extra2(カード保有者名 — この名前で候補を検索して選択。UPSIDER 上に存在する保有者名を正確に入力)
  • 任意: extra1(発行枚数 — 未指定または 0 以下、数値以外は 1 枚として扱われます)
  • 動作:
    1. ログイン確認 → /cards/issue/ に遷移
    2. 「バーチャルカード」→「通常のバーチャルカード」を選択
    3. extra2 の名前でカード保有者をコンボボックスで検索・選択
    4. 「発行リクエストを確認」→ ダイアログで「カードをアクティベート」→ POST 発行
    5. レスポンスの valid フラグで成功判定
    6. 2 枚目以降は「続けてバーチャルカードを発行」から同じフロー(ステップ 3〜5)をループ
    7. 発行枚数を Discord へ通知(個人用チャンネル)
  • 特記:
    • extra2(カード保有者名)が候補と一致しないと保有者を選べず失敗します。正確に入力してください。
    • 発行するのは「通常のバーチャルカード」です。
    • 複数枚発行時は MutationObserver で「発行」ボタンの再表示を検知してから次に進みます。
    • タスクの入力欄への書き戻し(発行したカード番号を返す等)はありません。発行したカードの詳細は UPSIDER 上、または GetList モードで確認します。

取引承認の自動クリック ​

AutoClick / auto ​

Slack チャネル内の 「取引を承認」ボタンを自動で検知してクリックし続けます。タイムアウトかボタンがなくなるまで実行します。

  • 必須: extra1(Slack チャネル URL)
  • 任意: extra2(タイムアウト秒数 — 未指定・0 以下・数値以外は 21600 = 6 時間)
  • 動作:
    1. ブラウザを起動して Slack チャネル URL に遷移
    2. MutationObserver をセット(DOM 変更を即時検知)
    3. ボタン探索ループ(0.5 秒ポーリング + 定期スクロール):
      • テキスト「取引を承認」を含むボタンを複数セレクタで探索
      • 可視性チェックの後、ID 非依存のフィンガープリント(タイムスタンプ・属性・コンテキストハッシュ)で重複排除
      • クリック可能なら実行
    4. タイムアウト or ボタンが見つからなくなったら終了
    5. クリック成功回数・経過秒数を Discord へ通知(個人用チャンネル)
  • 特記:
    • このモードは UPSIDER へのログイン操作は行いません。対象はあくまで Slack 画面で、そのブラウザで Slack にログイン済みである必要があります。loginId はブラウザプロファイルの識別用(任意)で、必要に応じて loginId / extra3 でプロファイルを使い分けてください。
    • Slack の仮想 DOM に対応するため、MutationObserver + ポーリング + 定期スクロールのハイブリッド検出方式を採用しています。
    • タスクの入力欄への書き戻しはありません。結果はステータス表示(クリック回数)と Discord 通知で確認します。

手動操作用 ​

Browser ​

Upsider にログインしてから url のページを開き、手動操作のために待機します。

  • 必須: なし(ログイン済みセッションを利用)
  • 任意: url(ログイン後に開くページ。省略時はカードページ /cards のまま)
  • 動作:
    1. ブラウザを起動 → ログインページに遷移
    2. セッションが有効ならそのまま、無効ならログイン
    3. カードページ(/cards)に遷移し、url があればそのページへ移る
    4. ブラウザが閉じられるまで待機
  • 特記:
    • url は https:// から始まる URL だけを受け付けます
    • ログイン後は「Browser ready - Manual operation mode」と表示され、ブラウザを閉じるまで待機します。
    • このモードは Discord 通知を送信せず、タスクの入力欄への書き戻しもありません。