# Story 3.4: Payroll Export Job Create & Status key: 3-4-payroll-export-job-create-status status: drafted phase: backend-planning note: Non-implementasi — definisi request, format, status, throttling. ## Ringkasan Kontrak pembuatan job ekspor payroll dan pembacaan status job. ## Scope Backend - Create job: { cycleId, format (csv|json), payCodeMapRef } - Status job: { jobId, status, progress } - Throttle & logging: disepakati ## Acceptance Gate - Format ekspor dan pay-code mapping disetujui - SOP persetujuan dual-control (opsional) dirujuk ## Kontrak (Outline) - Route: POST /api/payroll/exports - Request: ``` { "cycleId":"pc-2025-11", "format":"csv", "payCodeMapRef":"default" } ``` - Response: 202 ``` { "jobId":"je1", "status":"accepted" } ``` - Route: GET /api/payroll/exports/{jobId} - Response: 200 ``` { "jobId":"je1", "status":"running", "progress":42 } ```