Metadata
| Field | Value |
|---|---|
| Name | payroll.run |
| Category | write |
| Required scope | payments:initiate |
| Idempotency key required | yes |
Annotations
| Annotation | Value |
|---|---|
| Title | Run Payroll |
| Read-only | no |
| Destructive | yes |
| Idempotent | yes |
| Open-world | no |
| Requires human approval | yes (step-up) |
Input schema
Output schema
Auth
Caller’s grant must include thepayments:initiate scope. Grants whose scope set is a superset of the required scope are accepted.
Request examples
Response examples
Success — batch queued pending co-signer:Errors
| Code | Name | Cause | Remediation |
|---|---|---|---|
-32600 | Invalid request | Malformed JSON-RPC envelope | Check method, jsonrpc, and id fields |
-32602 | Invalid params | schedule_id not a valid UUID; schedule has zero active recipients (schedule_empty); schedule not found (schedule_not_found) | Verify the schedule_id exists and has at least one recipient |
-32001 | Unauthorized | Schedule belongs to a different tenant (schedule_tenant_mismatch), or missing/expired grant token | Confirm the schedule_id was created under the same entity as the calling grant |
-32002 | Policy denied | Grant missing payments:initiate scope | Issue a new grant with the required scope |
-32006 | Vendor unavailable | V2 payroll infra not shipped on this environment (payroll_v2_blocked) | Wait for Sprint 3-4 rollout; monitor the changelog |
-32004 | Rate limited | Too many batch starts in a short window | Back off by retry_after_seconds in the error data |
-32603 | Internal error | Batch enqueue failed | Retry with the same idempotency_key; the call is idempotent |