API reference

People

Staff, rosters, attendance, advances, payroll drafts, tips and training.

get

/v1/people/rosters

Rosters with their shifts; week = the roster's Monday. A staff-role member gets only their own shifts

operationId listRosters

Auth

Member token+Tenant header

Parameters

  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • weekin querystring (date)optional
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1PeopleRosterscontract v1.people.rosters
  • itemsarray of objectrequired
    • roster_idUuid7required
    • outlet_idUuid7required
    • week_startstring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • statusenum (2)required
      activecancelled
    • shiftsarray of objectrequired
      • roster_shift_idUuid7required
      • staff_idUuid7required
      • starts_atIsoDatetimerequired
      • ends_atIsoDatetimerequired
      • role_keystringrequired
      • statusenum (2)required
        scheduledcancelled
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/rosters

Create a week's roster (a person's own command)

operationId peopleRosterCreate

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.roster.create.v1"required
  • payloadPeopleRosterCreateV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/attendance

Clock-ins and outs; from / to = the outlet's business day (local time less its business-day cutoff). A staff-role member gets only their own

operationId listAttendance

Auth

Member token+Tenant header

Parameters

  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • fromin querystring (date)optional
  • toin querystring (date)optional
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1PeopleAttendancecontract v1.people.attendance
  • itemsarray of objectrequired
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/attendance

Clock a staff member in or out

operationId peopleAttendanceRecord

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.attendance.record.v1"required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/advances

Salary advances given and recovered (not for staff-role members)

operationId listAdvances

Auth

Member token+Tenant header

Parameters

  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • staffin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • statusin queryenum (2)optional
    givenrecovered
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1PeopleAdvancescontract v1.people.advances
  • itemsarray of objectrequired
    • advance_idUuid7required
    • staff_idUuid7required
    • outlet_idUuid7required
    • kindenum (2)required
      givenrecovered
    • amount_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • currencystringrequired
      pattern ^[A-Z]{3}$
    • on_datestring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • payroll_draft_idUuid7 | nullrequired
    • notestring | nullrequired
    • recorded_byUuid7required
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/advances

Record an advance given or recovered

operationId peopleAdvanceRecord

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.advance.record.v1"required
  • payloadPeopleAdvanceRecordV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/payroll-drafts

Approved payroll drafts with their lines; month = the 1st (not for staff-role members)

operationId listPayrollDrafts

Auth

Member token+Tenant header

Parameters

  • outletin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
  • monthin querystring (date)optional
  • limitin queryintegeroptional
  • cursorin querystringoptional
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response 200

V1PeoplePayrollDraftscontract v1.people.payroll-drafts
  • itemsarray of objectrequired
    • payroll_draft_idUuid7required
    • outlet_idUuid7required
    • period_monthstring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • statusenum (3)required
      approvedpaid_externallyvoid
    • currencystringrequired
      pattern ^[A-Z]{3}$
    • created_atIsoDatetimerequired
    • linesarray of objectrequired
      • payroll_line_idUuid7required
      • staff_idUuid7required
      • base_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • overtime_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • tips_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • advance_recovery_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • net_minorintegerrequired
        ≥ -9007199254740991≤ 9007199254740991
      • currencystringrequired
        pattern ^[A-Z]{3}$
  • next_cursorUuid7 | nullrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/payroll-drafts

Record an approved payroll draft (IN only)

operationId peoplePayrollDraftCreate

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.payroll_draft.create.v1"required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/staff:upsert

Create or update a staff record

operationId peopleStaffUpsert

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.staff.upsert.v1"required
  • payloadPeopleStaffUpsertV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/rosters:update

Edit or cancel a roster

operationId peopleRosterUpdate

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.roster.update.v1"required
  • payloadPeopleRosterUpdateV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/payroll-drafts/{id}:status

Mark an approved payroll paid outside Munim, or void it with a reason (reverses its journal entry; owner)

operationId peoplePayrollDraftStatus

Auth

Member token+Tenant header

Parameters

  • idin pathstringrequired
    pattern ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.payroll_draft.status.v1"required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/tip-pools

Record a tip pool and its shares

operationId peopleTipPoolRecord

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.tip_pool.record.v1"required
  • payloadPeopleTipPoolRecordV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/training

Record a training completion

operationId peopleTrainingRecord

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.training.record.v1"required
  • payloadPeopleTrainingRecordV1required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

post

/v1/people/candidates:upsert

Create or move a hiring candidate

operationId peopleCandidateUpsert

Auth

Member token+Tenant header

Request body

object
  • command_idUuid7required
  • idempotency_keystringrequired
    pattern ^[A-Za-z0-9_.:-]{8,100}$
  • typeconst "people.candidate.upsert.v1"required

Response 200

V1PeopleCommandResultcontract v1.people.command-result
  • command_idUuid7required
  • typestringrequired
    pattern ^[a-z][a-z_]*(\.[a-z][a-z_]*)+\.v[1-9][0-9]*$
  • entity_idUuid7required
  • committed_atIsoDatetimerequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/overtime

Overtime against the roster, per staff per ISO week

operationId peopleOvertime

Auth

Member token+Tenant header

Parameters

  • outletin querystringrequired
  • fromin querystringrequired
  • toin querystringrequired

Response 200

V1PeopleOvertimeResponsecontract v1.people.overtime.response
  • outlet_idUuid7required
  • fromstring (date)required
    pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
  • tostring (date)required
    pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
  • rowsarray of objectrequired
    • staff_idUuid7required
    • iso_weekstringrequired
      pattern ^[0-9]{4}-W[0-9]{2}$
    • rostered_minintegerrequired
      ≥ 0≤ 9007199254740991
    • attended_minintegerrequired
      ≥ 0≤ 9007199254740991
    • extra_minintegerrequired
      ≥ 0≤ 9007199254740991
    • extra_cost_minorintegerrequired
      ≥ 0≤ 9007199254740991

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/payroll-preview

Proposed payroll lines for a month (IN only)

operationId peoplePayrollPreview

Auth

Member token+Tenant header

Parameters

  • outletin querystringrequired
  • monthin querystringrequired

Response 200

V1PeoplePayrollPreviewResponsecontract v1.people.payroll-preview.response
  • outlet_idUuid7required
  • period_monthstringrequired
    pattern ^[0-9]{4}-(0[1-9]|1[0-2])-01$
  • currencystringrequired
    pattern ^[A-Z]{3}$
  • linesarray of objectrequired
    • staff_idUuid7required
    • base_minorintegerrequired
      ≥ 0≤ 9007199254740991
    • overtime_minorintegerrequired
      ≥ 0≤ 9007199254740991
    • advance_recovery_minorintegerrequired
      ≥ 0≤ 9007199254740991
    • tips_minorintegerrequired
      ≥ 0≤ 9007199254740991
    • net_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991
    • outstanding_advance_minorintegerrequired
      ≥ -9007199254740991≤ 9007199254740991

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.

get

/v1/people/staff

Staff of an outlet with their pay terms (not for staff-role members)

operationId peopleStaffList

Auth

Member token+Tenant header

Parameters

  • outletin querystringrequired

Response 200

V1PeopleStaffListcontract v1.people.staff.list
  • outlet_idUuid7required
  • staffarray of objectrequired
    • staff_idUuid7required
    • member_idUuid7 | nullrequired
    • outlet_idUuid7required
    • namestringrequired
      min length 1max length 200
    • role_keystringrequired
      pattern ^[a-z][a-z0-9_]*$
    • pay_basisenum (2)required
      hourlymonthly
    • wage_rate_minorinteger | nullrequired
      ≥ 0≤ 9007199254740991
    • monthly_salary_minorinteger | nullrequired
      ≥ 0≤ 9007199254740991
    • contract_min_per_monthinteger | nullrequired
      > 0≤ 9007199254740991
    • ot_multiplier_bpintegerrequired
      ≥ 10000≤ 40000
    • currencystringrequired
      pattern ^[A-Z]{3}$
    • joined_onstring (date)required
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • left_onstring (date) | nullrequired
      pattern ^(?:(?:[0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30)|(?:02)-(?:0[1-9]|1[0-9]|2[0-8])))$
    • activebooleanrequired

Errors

Every error body carries a code, a message and, where it applies, a reason_code. All error and reason codes.