業務システム

36協定の電子申請:e-Govとポータルの手順と、本社一括CSVを勤怠データから作る方法

基幹業務システムにおける機能一覧

36協定届の電子申請には、e-Gov電子申請から直接出す方法と、厚生労働省の労働条件ポータル「確かめよう労働条件」の作成支援ツールから出す方法の2つがあります。どちらも2021年4月から電子署名は不要で、複数の事業場の協定を本社でまとめて届け出る本社一括届出は電子申請でしか使えません。この記事では、2つの経路の手順と協定書を添付するときの入力方法を公式資料で確認したうえで、本社一括届出に添付する事業場一覧CSVの構造を厚生労働省配布のツールの実物から読み解き、勤怠・人事マスタから取込用CSVを作るPythonまで示します。36協定そのものの上限規制や締結手続は36協定とは何かと上限規制の解説に任せます。

まとめ:36協定の電子申請は経路を先に選び、事業場一覧は勤怠マスタから作る

事業場が1つ、または数か所で協定内容が揃っているなら、労働条件ポータルの作成支援ツールが手早い選択です。本社一括届出用のCSVを入力内容から自動で作り、届出先の労働基準監督署も所在地から自動で選び、有効期間満了の30日前にリマインドメールを送ります。e-Govから直接出す場合は、本社一括のたびに厚生労働省の一括届出事業場一覧作成ツールでCSVを作って添付する必要があります。

事業場が数十か所あり、毎年の届出で名称・所在地・労働者数を手で打ち直しているなら、勤怠・人事システムが持つ事業場マスタから取込用CSVを生成し、ツールで読み込んで入力チェックを通す流れに変えると転記ミスが消えます。注意したいのは、ツールが出力したCSVを後から編集してはいけない点です。生成したCSVはツールに読ませる材料であり、添付するのはツールの「申請ファイル作成」が出力したファイルです。

36協定の電子申請で使える2つの経路と、ログインに要るアカウントの準備

厚生労働省の労働基準法等の規定に基づく届出等の電子申請についてのページは、36協定届・1年単位の変形労働時間制に関する協定届・就業規則(変更)届の3手続を労働条件ポータルから、それ以外の届出をe-Gov電子申請から出すよう案内しています。36協定届はどちらからでも出せます。

e-Gov直接と労働条件ポータル経由を、本社一括と複写の機能で比べた一覧

違いが出るのは、本社一括届出の準備と翌年以降の作業量です。ポータル側の機能は厚生労働省のリーフレット「確かめよう労働条件」から電子申請ができるようになりました(R8.2版)に4点で整理されています。

比較項目 e-Gov電子申請から直接 労働条件ポータル経由
本社一括のCSV 一覧作成ツールで作り添付 入力内容から自動作成・添付
内容の異なる協定 事業場ごとに別々の申請 同一内容ごとにまとめて一括送信
届出先の労基署 所轄署を調べて自分で選択 所在地から自動選択
翌年の届出 一から入力 前回内容を複写、満了30日前に通知
ログイン e-Govアカウント・GビズID等 GビズIDまたはツールのアカウント

ポータルも送信はe-Govとの連携で行います。ポータルのQ&Aによると、GビズIDでe-Govと連携した状態は1か月で切れ、切れたまま申請するとシステムエラーになります。毎年の届出時期にまず連携し直す、という手順を社内の作業メモに入れておくと止まりません。

電子署名が不要になった2021年4月以降の準備と、GビズIDの扱い

労働基準法関係の届出は、2021年4月1日から電子署名・電子証明書の添付が不要になりました。厚生労働省の労基法等の電子申請パンフレットは、準備をe-Govアカウントの登録、ブラウザの設定、e-Gov電子申請アプリケーションのインストールの3つに絞っています。ログインにはe-Govアカウントのほか、GビズIDやMicrosoftアカウントも使えます。

社会保険労務士が提出代行する場合は、電子署名の代わりに社会保険労務士証票の写しを貼った「提出代行に関する証明書」をPDFなどで添付します。e-Govそのものの利用準備や料金の範囲はe-Gov電子申請でできることと利用準備で整理しています。

e-Govで36協定届を事業場単位で出す手順と、協定書を添付する入力の型

e-Govで手続名を検索すると、36協定届は「各事業場単位による届出」と「本社一括届」、一般条項のみと特別条項付き、医師・建設業・自動車運転者といった区分ごとに別の手続として並びます。自社の協定に合う手続を最初に選び間違えないことが、差戻しを防ぐ一番の近道です。

手続検索から到達番号の確認まで、e-Govの画面で進める9つの工程

パンフレットが示す流れは次のとおりです。特別条項付きの場合は、様式記入の画面で特別条項の入力欄と続紙の追加ボタンを使います。

  1. 事前準備(アカウント登録・ブラウザ設定・アプリのインストール)
  2. アプリを起動してマイページにログイン
  3. 「時間外労働」などで手続を検索し、申請書入力へ進む
  4. 申請者情報と連絡先情報を入力(法人は法人番号が必須)
  5. 申請様式を記入(入力必須項目は黄色で表示)
  6. 労使協定書などを添付
  7. 提出先の労働基準監督署を選択
  8. 内容を確認して提出
  9. 申請案件一覧で到達番号と処理状況を確認し、電子公文書を取得

提出先は事業場を管轄する労働基準監督署です。届出は協定の有効期間の開始日より前に到達している必要があり、ポータルの案内では例年3月中旬から下旬に申請が集中して処理に時間がかかるとされています。4月1日起算の協定なら、3月上旬に出しておくのが安全です。

様式に書き切れない協定は「詳細は別添労使協定書のとおり」で入力する

業務の種類が多い協定は、e-Govの様式に全行を入れられないことがあります。厚生労働省の36協定届の電子申請に係る注意事項(令和6年12月3日追記)は、この場合の入力方法を決めています。

  • 1行目:延長できる時間数が最も長い業務の種類について、事由・業務の種類・労働者数・延長時間を入力する
  • 2行目の事由:プルダウンで「その他(事由不明を含む。)」を選び、自由入力欄に「詳細は別添労使協定書のとおり。」と書く
  • 2行目の業務の種類:「分類不能の職業」を選び、同じく別添参照と書く
  • 2行目の労働者数と延長時間:1行目と同じ数値を入れる

そのうえで労使協定書を添付書類として付けます。同じ資料の令和6年6月3日追記には、法定休日の始業・終業時刻を自由入力欄だけに書く場合、途中で改行するとエラーになるという既知の不具合も載っています。勤怠システムから協定の文面を転記する場合は、改行を除いてから貼る処理を入れておくと止まりません。

提出後は画面から取り下げられない:到達番号と電子公文書の扱い

「提出」を押した後は、申請者の画面だけでは取下げも添付書類の差替えもできません。誤りに気づいたら、到達番号を控えて提出先の労働基準監督署へ連絡し、署側の承諾操作を経て取り下げます。ポータル経由で出した申請をe-Gov側で取り下げると、ポータルのステータスが更新されず編集できなくなるため、取消は必ずポータル側で行います。

審査が終わると、申請案件一覧から電子公文書をダウンロードできます。2023年2月27日からは、受付印のイメージが付いた控えを取得できる手続が27の届出・申請に広がりました。監督署の臨検で求められるのは有効期間内の協定届の写しなので、到達番号・審査完了日・控えのファイルを事業場の協定マスタと紐づけて保存しておくと、どの事業場の協定がいつまで有効かを一覧で答えられます。

本社一括届出の要件と、一括届出事業場一覧作成ツールで作るCSVの中身

本社一括届出は、各事業場の協定を本社の所在地を管轄する労働基準監督署へまとめて出す仕組みです。電子申請の場合だけ使えます。制度面の判断は36協定とは何かを解説した記事の届出の章にまとめているので、ここではe-Govで出すときの実務に絞ります。

本社一括にできる条件:事業場ごとに違ってよい7項目と同一が必要な項目

パンフレットによれば、36協定届で事業場ごとに違ってよいのは、労働保険番号、事業の種類、事業の名称、事業の所在地(電話番号)、労働者数(満18歳以上の者)、協定成立年月日、労働者側の協定当事者の7項目です。延長時間・起算日・有効期間といったそれ以外の協定内容は、全事業場で同一でなければなりません。電子申請に限り、過半数代表者が事業場ごとに違っていても一括にできます。

e-Govの本社一括の様式では、事業の種類・名称・所在地・労働者数を入力できない作りになっていて、これらは一覧作成ツール側に書きます。例外は業務の種類で、e-Govの様式とツールの両方に同じ内容を入れます。添付できるのは99ファイルまで、1ファイル50MB、合計99MBです。

ツールが出力するCSVの構造:1行目の識別子、82列の見出し、CRLF改行

一括届出事業場一覧作成ツール(時間外・休日労働協定、就業規則 共通)は、マクロ付きのExcelファイルです。2026年10月時点の配布版(xlsm内部の日付は2026年8月28日)を開き、出力処理のマクロと列定義のシートを読むと、CSVの形は次のように決まっていました。

  • 1行目:ツールの種類を表す識別子。一般条項・研究開発用は JKNGAI_IKKATUDE_JGJYO_LARGE_02、特別条項付き(医師・建設業・自動車運転者以外)は JKNGAI_IKKATUDE_TKBTS_02
  • 2行目:見出し。一般条項用は通し番号から被一括番号まで82列
  • 3行目以降:事業場ごとに1行。通し番号は1から振り、1が本社
  • 文字コードはBOM付きUTF-8、改行はCRLF

読み込み側のマクロは、1行目末尾の版番号が2以上ならUTF-8、そうでなければShift_JISとして読みます。行はCRLFで、列はカンマで機械的に分割していて、引用符で囲んだ値は解釈しません。LFだけで改行したファイルは1行として扱われ、所在地にカンマが入った値は列がずれます。82列の内訳は、事業場の基本情報7列、①一般の労働者・②1年単位の変形労働時間制の労働者・休日労働の3区分×4行×5項目の60列、協定当事者と労働保険番号の15列です。

入力チェックで弾かれる桁数と文字種:郵便番号は全角、電話番号は半角

ツールの入力チェックの規則はシートに定義されています。勤怠システム側で同じ規則を先に当てておくと、ツールでのエラー対応が減ります。

項目 規則
事業の名称 必須・80字以内・全角
所在地 必須・65字以内・全角
郵便番号 全角数字と全角ハイフンで3桁-4桁
電話番号 半角・ハイフン2つ・市外局番5桁以内
労働者数 半角数字で0〜999999
過半数代表者の職名・氏名 各30字以内
労働保険番号 府県2桁・所掌1桁・管轄2桁・基幹6桁・枝3桁

表記揺れが出やすいのは郵便番号です。人事マスタは半角の「100-0005」で持っているのが普通なので、出力時に全角へ変換します。業務の種類は通常欄か事業場外の欄のどちらか一方にだけ入れる決まりで、両方に入れるとエラーになります。

勤怠・人事マスタから事業場一覧CSVを生成してツールへ読み込ませる実装

事業場が数十か所ある会社では、ツールの事業場一覧シートへの手入力が毎年の作業の大半を占めます。ツールには「ファイルから読み込み」の機能があり、過去に作ったCSVを取り込めるので、この入口に自前で生成したCSVを流し込みます。

Pythonで事業場マスタから取込用CSVを書き出すスクリプトの全体

入力は勤怠・人事システムから書き出した事業場ごとのJSONを想定しています。Python 3.9系以降の標準ライブラリだけで動き、規則違反があればCSVを書かずに終了コード1を返します。

import json
import re
import sys

# 一般条項・研究開発用ツールが1行目で識別する文字列。末尾の _02 がUTF-8の目印
SIGNATURE = "JKNGAI_IKKATUDE_JGJYO_LARGE_02"
GROUPS = ("①", "②", "休日労働")  # ①一般 ②1年単位の変形労働時間制 休日労働
SLOT = ["業務の種類{n}", "業務の種類{n}(自由入力)", "業務の種類[事業場外]{n}",
        "業務の種類[事業場外]{n}(自由入力)", "労働者数{n}(満18歳以上の者)"]

HEAD = ["通し番号", "事業の種類", "事業の種類(自由入力)", "事業の名称", "郵便番号", "所在地", "電話番号"]
for g in GROUPS:
    for n in range(1, 5):
        HEAD += [g + " " + s.format(n=n) for s in SLOT]
HEAD += ["過半数労働組合の名称", "過半数代表者職名", "過半数代表者氏名", "選出方法",
         "チェック1", "チェック2", "協定成立年月日", "管轄労働局", "所轄労働基準監督署長名",
         "府県", "所掌", "管轄", "基幹番号", "枝番号", "被一括番号"]
assert len(HEAD) == 82

ZIP_ZEN = str.maketrans("0123456789-", "0123456789-")


def to_zenkaku(s):
    # 名称と所在地は全角項目。半角英数記号と空白を全角へ寄せる
    return "".join(chr(ord(c) + 0xFEE0) if "!" <= c <= "~" else " " if c == " " else c
                   for c in s)


def build_row(no, site):
    errs = []
    if not re.fullmatch(r"\d{3}-\d{4}", site["zip"]):
        errs.append("郵便番号は 123-4567 の形で持つ")
    if not re.fullmatch(r"\d{1,5}-\d{1,4}-\d{1,4}", site["tel"]):
        errs.append("電話番号の桁")
    name, addr = to_zenkaku(site["name"]), to_zenkaku(site["address"])
    if len(name) > 80 or len(addr) > 65:
        errs.append("名称80字・所在地65字の上限超過")
    row = [str(no), site["jigyo"], site.get("jigyo_free", ""), name,
           site["zip"].translate(ZIP_ZEN), addr, site["tel"]]
    for g in GROUPS:
        jobs = site["jobs"].get(g, [])
        if len(jobs) > 4:
            errs.append(g + " の業務が5行以上")
        for n in range(4):
            if n >= len(jobs):
                row += [""] * 5
                continue
            j = jobs[n]
            cell = [j["kind"], j.get("free", "")]
            # 業務の種類は通常欄か[事業場外]欄のどちらか一方だけに入れる
            row += ([""] * 2 + cell) if j.get("outside") else (cell + [""] * 2)
            row.append(str(j["count"]))
    parts = site["insurance"].split("-")  # 例 13-1-01-123456-000
    if [len(p) for p in parts[:5]] != [2, 1, 2, 6, 3]:
        errs.append("労働保険番号の桁")
    a = site["agreement"]
    row += [a.get("union", ""), a.get("rep_title", ""), a.get("rep_name", ""),
            a.get("method", ""), a["check1"], a["check2"], a["date"],
            site["kyoku"], site["sho"]]
    row += parts + [""] * (6 - len(parts))
    if any("," in v or "\n" in v for v in row):
        errs.append("値にカンマか改行が入っている")
    return row, errs


def main(src, dst):
    with open(src, encoding="utf-8") as f:
        sites = json.load(f)
    rows, ng = [], 0
    for no, site in enumerate(sites, 1):  # 通し番号1は本社
        row, errs = build_row(no, site)
        for e in errs:
            print(no, site["name"], e)
        ng += bool(errs)
        rows.append(row)
    if ng:
        return 1
    # ツールはCRLFで行を、カンマで列を素朴に分割する。引用符は使わない
    with open(dst, "w", encoding="utf-8-sig", newline="") as f:
        f.write(SIGNATURE + "\r\n")
        for r in [HEAD] + rows:
            f.write(",".join(r) + "\r\n")
    return 0


if __name__ == "__main__":
    sys.exit(main(sys.argv[1], sys.argv[2]))

実行は python make_ikkatsu_csv.py sites.json sites_import.csv です。csvモジュールを使わずに文字列を連結しているのは、値に引用符が付くとツールの読み込みで列がずれるためで、代わりにカンマと改行を含む値を事前に止めています。特別条項付きの協定は、1行目の識別子が変わり、事業場一覧の列の後ろに特別条項の列が続く別の構成になるので、同じ手順でそのツール用の見出しを確かめて組み立てます。

生成したCSVを直接添付しない理由と、ツール経由で申請ファイルを作る順序

ツールは申請ファイルを出力する直前に、本ツール以外で編集したファイルは監督署で審査されないという確認を出します。パンフレットの添付前チェックリストでも、作成した事業場一覧を直接修正して上書き保存していないことが確認事項です。生成したCSVは、次の順で必ずツールを通します。

  1. e-Govの手続に対応する最新版のツールを厚生労働省のページから取得する
  2. 対象手続を選んで入力シートを作り、「ファイルから読み込み」で生成したCSVを取り込む
  3. 「入力チェック」を押し、エラーメッセージのシートが出たら直す
  4. 「申請ファイル作成」で出力したCSVを、e-Govの本社一括の申請に添付する

使用するツールのバージョンにも注意が必要です。厚生労働省のページは、電子証明書の更新に伴い2026年9月5日以降は以前に公開されていたツールが使えなくなったとして、再ダウンロードを求めています。毎年の届出前にツールを取り直す工程を手順書に入れておきます。

手入力で1件出力した見本CSVと差分比較して列と値の表記を合わせる

列の並びはツールの定義シートで確かめられますが、事業の種類・選出方法・チェック欄・協定成立年月日といった選択式の項目が、CSV上で名称と記号のどちらで書かれるかは、出力したファイルを見るのが確実です。最初の年だけ、本社1行分をツールに手入力して申請ファイルを作り、それを見本として生成結果と1列ずつ比べてください。

見本との差分が0になったら、その見本ファイルをテストデータとしてリポジトリに置き、ツールの版が変わった年に作り直します。比較を自動テストにしておくと、ツールの列構成の変更(2024年1月からは特別条項付きの入力が2シートに分かれました)にも気づけます。

労働条件ポータル・e-Gov API・ツール運用のどれを選ぶかの判断基準

経路の選び方は、事業場の数と、協定の内容が何種類あるかで決まります。勤怠システムの機能を比べる前に、ここを決めておくと要件がぶれません。

事業場が数か所で協定内容が揃うならポータルの自動CSV作成で足りる

事業場が10か所程度までで、協定内容が1〜2種類に収まるなら、労働条件ポータルの電子申請様式作成支援ツールで十分です。事業場登録をCSVで一括取り込みでき、本社一括のCSVも自動で作られます。2025年6月30日からは、審査が完了した36協定届を複製して次の届出に使えるようになりました(それより前に作った書面は対象外です)。ここでCSV生成の開発をするのは過剰です。

ただしポータルの本社一括では、休日労働の欄に登録できるのは最大22件(事業場単位なら38件)までです。業務の種類が多い製造業や建設業ではこの上限に当たることがあり、その場合は前の章の「別添労使協定書のとおり」の入力に切り替えます。

e-Gov電子申請APIで自社システムから直接送る構成に踏み込む条件

e-Govの電子申請APIの対象手続一覧には、36協定届が21手続載っています。たとえば本社一括届の一般条項のみは手続ID 4950013320680000、特別条項付きは4950013320676000、各事業場単位の一般条項のみは4950013320681000で、申請データ形式はいずれも標準形式です。APIの最新はバージョン2で、利用者認証はOAuth2とOpenID Connectに準拠しています。2024年1月31日にサポートが終わった外部連携APIのソフトウェアIDやアクセスキーは使えません。

API連携に踏み込むのは、次の3つが重なる場合です。事業場が数十か所を超え協定内容が複数種類ある、協定の有効期間が事業場ごとにばらばらで年に何度も届出が発生する、到達番号と電子公文書を協定マスタへ自動で取り込みたい。1つしか当てはまらないなら、前の章のCSV生成とツール運用で止めるほうが保守費用は小さく済みます。APIとGビズIDの認証設計の一般論は労務管理システムの電子申請対応とAPI連携の判断で扱っています。

失敗パターンとして多いのは、協定の起算日や延長時間を勤怠システムの上限判定と別のExcelで管理し、届出内容とシステムの判定値が食い違うケースです。届出用のCSVと上限アラートの設定値を同じ協定マスタから出す構成にすると、この食い違いは起きません。事業場マスタと協定マスタの設計から届出データの出力まで要件を固めたい場合は、勤怠管理システム開発で相談を受けています。

よくある質問

36協定届の電子申請で、問い合わせの多い論点を5つ取り上げます。

36協定届の電子申請に電子署名や電子証明書は必要ですか?

不要です。労働基準法・最低賃金法・賃金の支払の確保等に関する法律に基づく届出は、2021年4月1日から電子署名・電子証明書の添付が要らなくなり、e-Govの申請画面でも添付画面は表示されません。社会保険労務士が提出代行するときは、社会保険労務士証票の写しを貼った提出代行に関する証明書をPDFなどで添付します。

電子申請なら協定書の押印や労働者代表の署名は要りませんか?

36協定届そのものは押印・署名なしで提出できます。ただし労使で合意した協定書は届出書とは別の書類で、署名または記名押印を残しておくのが実務です。e-Govの様式に協定事項を書き切れない場合は、その協定書を添付書類として付け、様式の2行目に「詳細は別添労使協定書のとおり。」と書きます。

本社一括届出は紙の届出や郵送でも使えますか?

使えません。本社一括届出を利用できるのは、電子申請の場合だけです。提出先は本社の所在地を管轄する労働基準監督署で、各事業場の名称・所在地・労働者数などは一括届出事業場一覧作成ツールで作ったCSVにまとめて添付します。窓口や郵送で出す場合は、事業場ごとにそれぞれの所轄署へ届け出ます。

電子申請した36協定届の控えはどこで受け取れますか?

e-Govの申請案件一覧から到達番号を開き、審査完了後に電子公文書をダウンロードします。労働条件ポータル経由で出した場合も、送信はe-Govとの連携で行われるため、到達番号で状況を追えます。スマートフォンでも処理状況は確認できますが、電子公文書のダウンロードはできません。利用者設定で案件ステータスのメール通知を受け取る設定にしておくと、審査完了を見落としません。

一括届出事業場一覧のCSVをExcelで開いて直してもよいですか?

避けてください。ツールが表示する警告は、出力後にツール以外で編集したファイルは監督署で審査されないという内容です。修正はツールに読み込み直して入力チェックを通し、「申請ファイル作成」で出力し直します。Excelで開いて保存すると、文字コードや改行が変わってツールでも読めなくなることがあります。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

RELATED POSTS 関連記事

目次