Ingest an inbound hours submission (Slack/email reply)

POST/api/v1/contracts/inbound/hours

Turn a parsed Slack or email hours reply into a pending drawdown entry awaiting approval (the hours gate). The caller supplies the already-parsed fields; the target contract must belong to the business.

Operation ID: ingest_hours_submission_api_v1_contracts_inbound_hours_post·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

contract_idstringrequired

Contract the hours draw against.

hoursnumber | stringrequired

Hours consumed.

entry_datestringrequired

Date the work happened (YYYY-MM-DD).

submitted_bystring

Who submitted the hours (Slack user / email sender).

submitted_viastring

Inbound channel: slack, email, or manual.

source_message_idstring

ID of the Slack/email message that created this entry.

descriptionstring

Optional note.

order_line_idstring

Order line the hours are drawn against (optional).

Responses

201Successful Response

successboolean
messagestring
codestring
dataDrawdownResponse

400Bad Request - Invalid input

401Unauthorized - Authentication required

403Forbidden - Insufficient permissions

404Not Found - Resource does not exist

422Validation Error

detailarray · ValidationErrorValidationError
5 fields
locarray · string | integerrequired
msgstringrequired
typestringrequired
inputobject
ctxobject