Shifts

Events

The shift payload includes a location object with the station where the shift was opened. Its structure is the same as Shift location (shiftLocation) described in structure: it includes name, stationId, country, province, shortcode, latitude, longitude, costCenter, operatingCompanyId, operatingCompanyName, locationPurchaseLimits, primaryCurrencyCode, acceptedCurrencies, externalId, and timeZone (IANA time zone, e.g. America/Toronto).

Action Event name
opening a shift shift.created
updating shift requires-agency-shift-closure (PUT /shifts/:shiftId/requires-agency-shift-closure) shifts.updated
adding deposits to a shift (POST /shifts/:shiftId/deposits or closing a shift with deposits) shifts.deposit.created
adding manual ticket to a shift (POST /shifts/:shiftId/manual-tickets) shifts.manualTicket.created
closing a shift shift.closed

Payload example (shifts.updated)

Emitted when updating the requires-agency-shift-closure property via PUT /shifts/:shiftId/requires-agency-shift-closure. The data object contains the updated shift (same structure as the generic shift payload below).

{
  "id": "string",
  "attemptId": "string",
  "livemode": "boolean",
  "created": 0,
  "event": "shifts.updated",
  "data": {
    "_id": "string",
    "variance": 0,
    "userId": "string",
    "user": { "username": "string", "email": "string" },
    "shiftNumber": "string",
    "location": {},
    "internalId": "",
    "deposits": [],
    "comment": "string",
    "closedAt": {},
    "closed": false,
    "agencyId": "string",
    "accountId": "string",
    "deleted": false,
    "createdAt": { "value": "string", "offset": 0 },
    "updatedAt": { "value": "string", "offset": 0 }
  }
}

Payload example

{
  "id": "string",
  "attemptId": "string",
  "livemode": "boolean",
  "created": "int",
  "event": "string",
  "data": {
    "_id": "string",
    "variance": "int",
    "userId": "string",
    "user": {
      "username": "string",
      "email": "string"
    },
    "shiftNumber": "string",
    "location": {
      "stationId": "string",
      "name": "string",
      "country": "string",
      "province": "string",
      "shortcode": "string",
      "latitude": "string",
      "longitude": "string",
      "costCenter": "string",
      "operatingCompanyId": "string",
      "operatingCompanyName": "string",
      "locationPurchaseLimits": {},
      "primaryCurrencyCode": "string",
      "acceptedCurrencies": [],
      "externalId": "string",
      "timeZone": "string"
    },
    "internalId": "",
    "deposits": [],
    "comment": "string",
    "closedAt": {},
    "closed": "boolean",
    "agencyId": "string",
    "accountId": "string",
    "deleted": "boolean",
    "createdAt": {
      "value": "string",
      "offset": "int"
    },
    "updatedAt": {
      "value": "string",
      "offset": "int"
    }
  }
}

Payload fields (shift payload)

Field Type Description
data._id string Shift id (ObjectId)
data.variance number Cash variance amount
data.userId string User id (ObjectId) who opened the shift
data.user object User info (username, email)
data.shiftNumber string Shift number
data.location object Station/location where the shift was opened (see structure)
data.internalId string Internal id
data.deposits array Deposits for the shift
data.comment string Closure comment
data.closedAt object Close timestamp
data.closed boolean Whether the shift is closed
data.agencyId string Agency id
data.accountId string Account id
data.deleted boolean Soft-delete flag
data.createdAt object Creation timestamp (value, offset)
data.updatedAt object Last update timestamp (value, offset)

Payload example deposit created

{
  "attemptId": "bbbe2471-131a-4bce-a1a9-3ccff1aa2139",
  "created": 1682013279,
  "data": {
    "id": "string",
    "bag": "1",
    "comment": "",
    "deposit": 23,
    "depositMXN": 300,
    "depositPEN": 200,
    "slip": "3",
    "userId": "string",
    "partialDeposit": "boolean",
    "partialDepositOrder": 0,
    "location": {
      "stationId": "string",
      "name": "string",
      "country": "string",
      "province": "string",
      "shortcode": "string",
      "latitude": "string",
      "longitude": "string",
      "costCenter": "string",
      "operatingCompanyId": "string",
      "operatingCompanyName": "string",
      "locationPurchaseLimits": {},
      "primaryCurrencyCode": "string",
      "acceptedCurrencies": [],
      "externalId": "string",
      "timeZone": "string"
    },
    "user": {
      "username": "string",
      "email": "string"
    },
    "operatingCompanyId": "string",
    "operatingCompanyName": "string",
    "createdAt": {
      "value": "string",
      "offset": "int"
    },
    "type": "string"
  },
  "event": "shifts.deposit.created",
  "id": "857dc9d7-19b9-4591-a059-df21a59ea851",
  "livemode": false
}

Payload fields (shifts.deposit.created)

Field Type Description
data.id string Deposit id (ObjectId)
data.bag string Bag identifier
data.comment string Deposit comment
data.deposit number Deposit amount (primary currency)
data.depositMXN number Deposit amount in MXN (if applicable)
data.depositPEN number Deposit amount in PEN (if applicable)
data.slip string Slip identifier
data.userId string User id (ObjectId)
data.partialDeposit boolean Whether this is a partial deposit
data.partialDepositOrder number Order of partial deposit
data.location object Station/location (see structure)
data.user object User info (username, email)
data.operatingCompanyId string Operating company id
data.operatingCompanyName string Operating company name
data.createdAt object Creation timestamp (value, offset)
data.type string Deposit type

Payload example manual ticket created

{
  "attemptId": "a992ea6d-d264-4f2d-a460-db3451f3e2c1",
  "created": 1684159205,
  "data": {
    "manifestDate": {
      "offset": 0,
      "value": "2023-05-15T00:00:00.000Z"
    },
    "scheduleName": "SC-name",
    "tickets": [
      {
        "price": 999,
        "ticketNumber": "TN-128823"
      }
    ]
  },
  "event": "shifts.manualTicket.created",
  "id": "d0e42807-3fcb-4602-a438-3c58ad74b199",
  "livemode": false
}

Payload fields (shifts.manualTicket.created)

Field Type Description
data.manifestDate object Manifest date (value, offset)
data.scheduleName string Schedule name
data.tickets array List of manual tickets
data.tickets[].price number Ticket price
data.tickets[].ticketNumber string Ticket number