Origo API

Documentation was generated on 2026-08-21T16:07:03.288Z

Table of contents

Http endpoints

admin

ai

app

auth

booked-consultant-ids

candidate-account

collective-agreement

consultant

consultant-account

consultant-account-sync-version

consultant_rating

contract

contract-signed-callback

corporate-group

customer

customer-account

customer-sync-version

dashboard

dev

document

file-service

fortnox

integration

internal-notification

invitation

invoice

invoice-batch

job

job-report

job-updater-agent

knowledge-base-article

knowledge-base-articles

mail

me

message-template

notification

notifications

org-query-agent

organisation

organisation-account

origo

ping

rating

report

reset-password

salary-batch

schedule

stats

subsidiary

time-report

user

Service endpoints

auth-service

file-service

fruster-web-bus

mail-service

oo-fortnox-service

oo-hogia-hr-service

oo-job-service

oo-notification-service

oo-organisation-service

oo-report-service

oo-user-log-service

oo-user-service

password-reset-service

push-service

report-service

schedule-service

sms-auth-service

sms-service

sse

user-service

Http endpoints

admin


DELETE to /admin/system/role

from oo-fruster-user-service.ed91b8f9

Removes a system role.


DELETE to /admin/system/role/scope

from oo-fruster-user-service.ed91b8f9

Removes one or more scopes from a system role.


DELETE to /admin/user/:id

from oo-fruster-user-service.ed91b8f9

Deletes a user. Response has status code 200 if successful. pub.user-service.user-deleted is published after deletion


GET to /admin/system/role

from oo-fruster-user-service.ed91b8f9

Gets all system roles.


GET to /admin/user

from oo-fruster-user-service.ed91b8f9

Gets users. Response has status code 200 if successful. Note that any query params will be used as a mongo query.


GET to /admin/user/:id

from oo-fruster-user-service.ed91b8f9

Gets user by id. Response has status code 200 if successful.


POST to /admin/system/role

from oo-fruster-user-service.ed91b8f9

Adds a new system role.


POST to /admin/system/role/scope

from oo-fruster-user-service.ed91b8f9

Adds one or more scopes to a system role.


POST to /admin/user

from oo-fruster-user-service.ed91b8f9

Creates a fruster user. Must include a few base fields but can contain any number of custom fields. Response has status code 201 if successful. Automatically splits data between user and profile if configured to.


PUT to /admin/user/:id

from oo-fruster-user-service.ed91b8f9

Updates a user. Can contain any number of custom fields. Response has status code 200 if successful.

ai


POST to /ai/chat

from oo-integration-service.711dddcc

app


GET to /app/demo-mode

from oo-organisation-service.25f8f58f

Returns wether the app is in demo mode. Can be used during app reviews or similar.


GET to /app/version/:versionId

from oo-organisation-service.25f8f58f

Get an app version


POST to /app/version

from oo-organisation-service.25f8f58f

Create an app version

auth


* to /auth/logout

from oo-auth-service.33b8fd75

Will return a Set-Cookie to instruct browser to expire any existing cookie and delete the session of the token (from cookie or Authorization Bearer-header) from the database. Should be used by both Token and Cookie.

Note: When using the query param logoutId the id is obtained from GET to /auth/active-sessions which can only be done by the logged in user.


GET to /auth/active-sessions

from oo-auth-service.33b8fd75

Gets all active sesssions for the logged in user, typically to be used to list sessions similar to something like google or facebook with the ability to logout any session:

Image should be here: please report missing image 😬

Will return all values as null (expect for id) if user hasn't been active since the session details functionality was implemented (sometime around 2020-06-11).



POST to /auth/app

from oo-auth-service.33b8fd75 | Note: Use POST to /auth/token instead

POST to /auth/cookie

from oo-auth-service.33b8fd75

Login for web applications. Logs in with username and password and return JWT in Set-Cookie header. Returns user data in the response body, same as user-service.get-users-by-query with expand: "profile" but for the logged in user.


POST to /auth/cookie/sms

from oo-sms-auth-service.6e7a7273

Verify code and return auth cookies


POST to /auth/disable-tfa/sms

from oo-auth-service.33b8fd75

Disables Two Factor Authentication via SMS for the user. Will remove the sms from the user's two factor authentication methods.


POST to /auth/enable-tfa/sms

from oo-auth-service.33b8fd75

Enables Two Factor Authentication via SMS for the user. Will send a SMS to the provided phone number with a code that the user needs to input to enable TFA. The code is valid for 10 minutes.


POST to /auth/refresh

from oo-auth-service.33b8fd75

Gets a fresh access token by providing a refresh token.


POST to /auth/sms

from oo-sms-auth-service.6e7a7273 | Note: POST to /auth/token/sms

Verify code and return auth tokens


POST to /auth/sms/send-code

from oo-sms-auth-service.6e7a7273

Send code to sms


POST to /auth/token

from oo-auth-service.33b8fd75

Login for non web devices such as native mobile apps. Returns an access token to be used as bearer authentication. Response body also contains profile which has the same data as user-service.get-users-by-query with expand: "profile" but for the logged in user.


POST to /auth/token/sms

from oo-sms-auth-service.6e7a7273

Verify code and return auth tokens


POST to /auth/verify-tfa/sms

from oo-auth-service.33b8fd75

Verifies the Two Factor Authentication code sent to the user via SMS. Will return a Set-Cookie with the new session token if the code is correct. The code is valid for 10 minutes.


POST to /auth/web

from oo-auth-service.33b8fd75 | Note: Use POST to /auth/cookie instead

booked-consultant-ids


GET to /booked-consultant-ids

from oo-job-service.b016b808

Get consultants that are booked on shifts or absent within a date range, with the calendar days they are busy on

collective-agreement


DELETE to /collective-agreement/:collectiveAgreementId

from oo-user-service.67cc1a03

Delete a collective agreement by id


GET to /collective-agreement

from oo-user-service.67cc1a03

Get collective agreements


GET to /collective-agreement/:collectiveAgreementId

from oo-user-service.67cc1a03

Get a collective agreement by id


POST to /collective-agreement

from oo-user-service.67cc1a03

Create a new collective agreement


POST to /collective-agreement/by-consultants

from oo-user-service.67cc1a03

Get consultants using a specific collective agreement


PUT to /collective-agreement/:collectiveAgreementId

from oo-user-service.67cc1a03

Update a collective agreement

consultant


GET to /consultant/:consultantId/guaranteed-hours

from oo-job-service.b016b808

Get guaranteed hours progress for a consultant in a given month.


GET to /consultant/:consultantId/salary

from oo-job-service.b016b808

This endpoint for show salary in the consultant view


GET to /consultant/:consultantId/salary_summary

from oo-job-service.b016b808

This endpoint for get salary summary


PUT to /consultant/:userId/salary

from oo-user-service.67cc1a03

Update a consultant/candidate salary

consultant_rating


GET to /consultant_rating

from oo-user-service.67cc1a03

For getting consultant ratings

contract


DELETE to /contract/:contractId

from oo-organisation-service.25f8f58f

Delete a contract


DELETE to /contract/:contractId/ob-rule/:ruleId

from oo-organisation-service.25f8f58f

Delete a ob rule


GET to /contract

from oo-organisation-service.25f8f58f

Get contracts


GET to /contract/:contractId

from oo-organisation-service.25f8f58f

Get contract by id


GET to /contract/:contractId/ob-rule

from oo-organisation-service.25f8f58f

Get ob rules for contract id


POST to /contract

from oo-organisation-service.25f8f58f

Create a contract


POST to /contract/:contractId/ob-rule

from oo-organisation-service.25f8f58f

Create a ob rule


PUT to /contract/:contractId

from oo-organisation-service.25f8f58f

Update a contract


PUT to /contract/:contractId/ob-rule

from oo-organisation-service.25f8f58f

Batch update, create, and delete OB rules for a contract


PUT to /contract/:contractId/ob-rule/:ruleId

from oo-organisation-service.25f8f58f

Update a ob rule

contract-signed-callback


POST to /contract-signed-callback

from oo-user-service.67cc1a03

Handles webhook that is posted after employment contract was signed

corporate-group


DELETE to /corporate-group/:corporateGroupId

from oo-organisation-service.25f8f58f

Delete a corporate group (koncern). Blocked while the group has member customers.


GET to /corporate-group

from oo-organisation-service.25f8f58f

Get corporate group list


GET to /corporate-group/:corporateGroupId

from oo-organisation-service.25f8f58f

Get a corporate group by id, including its member customers


POST to /corporate-group

from oo-organisation-service.25f8f58f

Create a corporate group (koncern). The group owns the invoice details shared by its member customers.


PUT to /corporate-group/:corporateGroupId

from oo-organisation-service.25f8f58f

Update a corporate group (koncern). Changes to the invoice details apply to all member customers at read time.

customer


DELETE to /customer/:customerId

from oo-organisation-service.25f8f58f

Delete an customer by id


GET to /customer

from oo-organisation-service.25f8f58f

Get customer list


GET to /customer/:customerId

from oo-organisation-service.25f8f58f

Get a customer by id


GET to /customer/:customerId/competences

from oo-organisation-service.25f8f58f

Get latest contract version competences by customer id, will filter away hidden ones if logged in as customer


GET to /customer/:customerId/history

from oo-organisation-service.25f8f58f

Get one page of the customer event timeline, newest first. Internal users only.


GET to /customer/:customerId/terms

from oo-organisation-service.25f8f58f

Get latest contract version terms by customer id


GET to /customer/:customerId/user

from oo-organisation-service.25f8f58f

Get users by customer id


GET to /customer/:id/duplicates

from oo-organisation-service.25f8f58f

Find any potential duplicate customers based on address, is used when activating a new customer


GET to /customer/job/shifts_count

from oo-job-service.b016b808

Get shifts count by customer


POST to /customer

from oo-organisation-service.25f8f58f

Create a customer


POST to /customer/:customerId/price

from oo-organisation-service.25f8f58f

Get price for given competences with customer id


PUT to /customer/:customerId

from oo-organisation-service.25f8f58f

Update a customer

customer-sync-version


GET to /customer-sync-version

from oo-organisation-service.25f8f58f

Get the organisation's current customer sync version — a monotonic counter bumped on every customer write. Poll it to decide whether a cached customer list is stale. Returns 0 if no customer write has happened yet.

dashboard


GET to /dashboard

from oo-report-service.a25f66de

Get dashboard stats


POST to /dashboard/refresh-cache

from oo-report-service.a25f66de

Manually trigger a rebuild of the dashboard cache for the authenticated user's organisation only.

dev


GET to /dev/log

from oo-user-log-service.9650d72b

GET to /dev/log/:topic/:id

from oo-user-log-service.9650d72b

GET to /dev/notification-log

from oo-user-log-service.9650d72b

GET to /dev/response-time-stats

from oo-user-log-service.9650d72b

POST to /dev/crash

from oo-user-log-service.9650d72b

document


DELETE to /document/:documentId

from oo-user-service.67cc1a03

Delete a document by ID


GET to /document

from oo-user-service.67cc1a03

Get a list of documents with pagination, sorting, and filtering


GET to /document/:documentId

from oo-user-service.67cc1a03

Get a document by ID


POST to /document

from oo-user-service.67cc1a03

Add a document


PUT to /document/:documentId

from oo-user-service.67cc1a03

Update a document

file-service


GET to /file-service/health

from file-service.8acf071c

Gets current health of the service.


POST to /file-service/upload

from file-service.8acf071c

Uploads a file. Uses multipart data with the file to be uploaded as a form field called 'file'. Max file size is 20 mb. Returns status code 201 on success.


PUT to /file-service/image/:imageName

from file-service.8acf071c

Updates image width, height and/or rotation. Will process images and save in S3.

fortnox


GET to /fortnox/activate

from oo-fortnox-service.52083764

Activates fortnox integration for the logged in users organisation. This is a one-off operation required to allow Origo to access the clients Fortnox account.


GET to /fortnox/redirect

from oo-fortnox-service.52083764

Handles redirect from Fortnox after app was added


GET to /fortnox/status

from oo-fortnox-service.52083764

Returns status of fortnox integration(s)


POST to /fortnox/test

from oo-fortnox-service.52083764

Will test the fortnox integration by invoking the Fortnox API, will only perform read operations that are safe.

integration


POST to /integration/arbetsgivarintyg

from oo-integration-service.711dddcc

internal-notification


POST to /internal-notification

from oo-notification-service.6db952a0

Send internal notification

invitation


GET to /invitation

from oo-job-service.b016b808

Returns list of job invitations for logged in consultant


POST to /invitation/:userId/invite

from oo-user-service.67cc1a03

Invite a consultant or customer


PUT to /invitation/:token

from oo-user-service.67cc1a03

Update a user account by using an invitation token. This is a public endpoint that is used when onboarding new users by sending out invitations.

invoice


GET to /invoice

from oo-job-service.b016b808

Get invoices


GET to /invoice/:invoiceId

from oo-job-service.b016b808

Get invoice by id


GET to /invoice/:invoiceNum/download

from oo-fortnox-service.52083764

Downloads a PDF invoice by creating a 'preview' in Fortnox


POST to /invoice/:invoiceId/credit

from oo-job-service.b016b808

Credits invoice (so far only available for organisations using Fortnox as invoicing system)

invoice-batch


GET to /invoice-batch

from oo-job-service.b016b808

Get invoice batches


GET to /invoice-batch/:invoiceBatchId

from oo-job-service.b016b808

Get invoice batch by id


POST to /invoice-batch

from oo-job-service.b016b808

Create a invoice batch as preview


POST to /invoice-batch/:invoiceBatchId/process

from oo-job-service.b016b808

Process an invoice batch


POST to /invoice-batch/:invoiceBatchId/rollback

from oo-job-service.b016b808

Reverts invoice batch


POST to /invoice-batch/count

from oo-job-service.b016b808

Count customers and time reports that an invoice batch would include, without creating one


PUT to /invoice-batch/:invoiceBatchId/invoice/:invoiceId

from oo-job-service.b016b808

Toggles if invoice should be included in invoice batch

job


DELETE to /job/:jobId

from oo-job-service.b016b808

Delete job by id


DELETE to /job/:jobId/application/:applicationId

from oo-job-service.b016b808

Hard-delete a job application so the consultant can re-apply


DELETE to /job/:jobId/invitation/:invitationId

from oo-job-service.b016b808

Delete job invitation


GET to /job

from oo-job-service.b016b808

Get list of jobs for authenticated user


GET to /job/:jobId

from oo-job-service.b016b808

Get a job by id


GET to /job/:jobId/application

from oo-job-service.b016b808

Get applications by job id


GET to /job/:jobId/confirmation/consultant/:consultantId

from oo-job-service.b016b808

Download job confirmation for consultant


GET to /job/:jobId/confirmation/customer

from oo-job-service.b016b808

Download job confirmation for customer


GET to /job/:jobId/history

from oo-job-service.b016b808

Get the unified event timeline for a job (job history + time report milestones), newest first. Internal users only.


GET to /job/:jobId/shift

from oo-job-service.b016b808

Get shifts by job id


GET to /job/:jobId/user

from oo-job-service.b016b808

Get matching consultants for a job


POST to /job

from oo-job-service.b016b808

Create a job


POST to /job/:jobId/application

from oo-job-service.b016b808

Create job application by consultant


POST to /job/:jobId/book

from oo-job-service.b016b808

Book consultant for specific job, optionally on an explicit set of its available shifts


POST to /job/:jobId/cancel

from oo-job-service.b016b808

Cancel job


POST to /job/:jobId/deny

from oo-job-service.b016b808

Decline job if job has not matching consultants


POST to /job/:jobId/invitation

from oo-job-service.b016b808

Create job invitation to consultant by customer user


POST to /job/:jobId/invitation/:invitationId/accept

from oo-job-service.b016b808

Accept an invitation as logged in consultant


POST to /job/:jobId/invitation/:invitationId/decline

from oo-job-service.b016b808

Decline invitation by consultant


POST to /job/:jobId/reopen

from oo-job-service.b016b808

Reopens job that was previously cancelled or denied


POST to /job/:jobId/send-notification-to-matches

from oo-job-service.b016b808

Send notification to matching consultant


POST to /job/:jobId/shift

from oo-job-service.b016b808

Add shifts to a job


POST to /job/draft/user

from oo-job-service.b016b808

Get matching consultants for an draft job


PUT to /job/:jobId

from oo-job-service.b016b808

Update a job


PUT to /job/:jobId/application/:applicationId

from oo-job-service.b016b808

Update job application status


PUT to /job/:jobId/shift

from oo-job-service.b016b808

Update shift for a job. This endpoint is only for customer users.


PUT to /job/:jobId/shifts

from oo-job-service.b016b808

Update shifts for a job


PUT to /job/:jobId/shift_status

from oo-job-service.b016b808

Change the status of extended required shifts

job-report


GET to /job-report

from oo-job-service.b016b808

Get job reports


GET to /job-report/:jobReportId

from oo-job-service.b016b808

Get job report by id


GET to /job-report/:jobReportId/:token

from oo-job-service.b016b808

Get job report by id and token (public endpoint)


PUT to /job-report/:jobReportId

from oo-job-service.b016b808

Update job report by id


PUT to /job-report/:jobReportId/:token

from oo-job-service.b016b808

Update job report by id (public endpoint)

job-updater-agent


POST to /job-updater-agent

from oo-integration-service.711dddcc

knowledge-base-article


DELETE to /knowledge-base-article/:articleId

from oo-organisation-service.25f8f58f

Delete a knowledge base article (requires knowledge-base.delete permission)


GET to /knowledge-base-article/:articleId

from oo-organisation-service.25f8f58f

Get a knowledge base article by id


POST to /knowledge-base-article

from oo-organisation-service.25f8f58f

Create a knowledge base article (requires knowledge-base.create permission)


POST to /knowledge-base-article/:articleId/feedback

from oo-organisation-service.25f8f58f

Record feedback (thumbs up/down) for a knowledge base article (requires knowledge-base.feedback permission)


PUT to /knowledge-base-article/:articleId

from oo-organisation-service.25f8f58f

Update a knowledge base article (requires knowledge-base.update permission)

knowledge-base-articles


GET to /knowledge-base-articles

from oo-organisation-service.25f8f58f

Get knowledge base articles by tags (comma-separated). Returns all articles if no tags provided.

mail


GET to /mail/template/:id

from oo-mail-service.d2eeab33

Get mail template by its id


POST to /mail/template

from oo-mail-service.d2eeab33

Creates a mail template


PUT to /mail/template/:id

from oo-mail-service.d2eeab33

Updates mail template

me


GET to /me

from oo-user-service.67cc1a03

Get the authenticated user, including profile.preferences


PUT to /me/preferences

from oo-user-service.67cc1a03

Update the authenticated user's own preferences (merged into profile.preferences)

message-template


GET to /message-template

from oo-user-service.67cc1a03 | Note: Use notification templates instead, this is a no-op.

Get message templates

notification


DELETE to /notification/:notificationId

from oo-notification-service.6db952a0

Delete notification by id


GET to /notification

from oo-notification-service.6db952a0

Get notifications of the auth user


POST to /notification

from oo-notification-service.6db952a0

Create notification


PUT to /notification/read

from oo-notification-service.6db952a0

Read bulk notifications of the auth user

notifications


POST to /notifications/register

from oo-push-service.15767e71

Register a FIREBASE device token (aka registrationToken) and user id.

  • Example of device token: APA91bHUyC8pJNmnEjkDeoeKKjo_i5IXQZef0VkG8aLy3ViYsgY0tuCY4gLGSKsTUuZRWWXyhFscDo-UogugDPfTT04yhPJVR_ELHvGowYXu49c9gvDG7WpUamgvCebLhWppHn8LoLa3H1FbeV6xNSdXh5rl7rABSw

POST to /notifications/unregister

from oo-push-service.15767e71

Unregisters either a FIREBASE device token (aka "registrationToken") or user id.

- If `registrationToken` is used, all users with that registrationToken are removed from push.

- If `userId` (logged in user) is used, all registrationTokens (devices) for that user will be removed from push.

org-query-agent


POST to /org-query-agent

from oo-integration-service.711dddcc

organisation


DELETE to /organisation/:orgId

from oo-organisation-service.25f8f58f

Delete an organisation by id


DELETE to /organisation/:orgId/tag-type/:taxonomy/:key

from oo-organisation-service.25f8f58f

Delete a tag type and cascade delete the tag from every entity carrying it. Consultant tag types used as requirements on active jobs cannot be deleted.


GET to /organisation

from oo-organisation-service.25f8f58f

Get list of all organisations


GET to /organisation/:orgId

from oo-organisation-service.25f8f58f

Get an organisation by id


GET to /organisation/:orgId/competences

from oo-organisation-service.25f8f58f

Get competences by organisation id. Archived competences are excluded unless includeArchived=true


GET to /organisation/:orgId/notification-settings

from oo-notification-service.6db952a0

Get notification templates and settings by organisation id


GET to /organisation/:orgId/notification-templates

from oo-notification-service.6db952a0

Get notification templates by organisation id


POST to /organisation

from oo-organisation-service.25f8f58f

Create an organisation


POST to /organisation/:orgId/tag-type/:taxonomy

from oo-organisation-service.25f8f58f

Create a tag type in one of the organisation's tag taxonomies. If key is omitted it is slugified from name.sv.


POST to /organisation/:orgId/template

from oo-notification-service.6db952a0

Creates a new notification template


POST to /organisation/:orgId/template/:templateId/test

from oo-notification-service.6db952a0

Send a test notification to a specified user using a template


PUT to /organisation/:orgId

from oo-organisation-service.25f8f58f

Update an organisation by id


PUT to /organisation/:orgId/competence

from oo-organisation-service.25f8f58f

Update an organisation's competence tree: rename, archive/restore or add a competence. Competences are archived rather than deleted so existing jobs keep working.


PUT to /organisation/:orgId/tag-type/:taxonomy/:key

from oo-organisation-service.25f8f58f

Update a tag type (name, and validityDuration for the consultant taxonomy). Renames propagate automatically since entities store only the key.


PUT to /organisation/:orgId/template/:id

from oo-notification-service.6db952a0

Updates a single notification template

origo


POST to /origo/reset-password

from oo-user-service.67cc1a03

Public endpoint to request password reset. Will take users role into account and use different templates depending on it.

ping


POST to /ping

from oo-user-service.67cc1a03

Sends a ping for analytic purposes

rating


GET to /rating/customer/:customerId

from oo-job-service.b016b808

Returns customer average rating based on job reports

report


GET to /report/candidate

from oo-report-service.a25f66de

Get candidate report


GET to /report/consultant

from oo-report-service.a25f66de

Get consultant report


GET to /report/consultant-worked

from oo-report-service.a25f66de

Get consultant worked hour report


GET to /report/customer

from oo-report-service.a25f66de

Get customer report


GET to /report/customer-job-stats

from oo-report-service.a25f66de

Get customer job stats report


GET to /report/customer-user

from oo-report-service.a25f66de

Get customer user report


GET to /report/download

from oo-fruster-report-service.af3aa709

Download report file. Only available if EXPOSE_DOWNLOAD is enabled.


GET to /report/sold-hours

from oo-report-service.a25f66de

Get sold hours and revenue report

reset-password


GET to /reset-password/:token

from oo-password-reset.3aeed82c

Gets whether or not the provided token is still valid for resetting password. Typically used to display a warning to the user before posting new password that the token is invalid.


POST to /reset-password

from oo-password-reset.3aeed82c

Requests a password reset to by providing a username. Username is configured to be: email.


PUT to /reset-password

from oo-password-reset.3aeed82c

Reset user's password with token from password reset-email.

salary-batch


GET to /salary-batch

from oo-job-service.b016b808

Get salary batches


GET to /salary-batch/:salaryBatchId

from oo-job-service.b016b808

GET to /salary-batch/hogia/export-url

from oo-hogia-hr-service.765c9618

Generates a signed URL to export ZIP


POST to /salary-batch

from oo-job-service.b016b808

Create a salary batch as preview for provided period, optionally scoped to a selection of consultants


POST to /salary-batch/:salaryBatchId/process

from oo-job-service.b016b808

Process salary batch


POST to /salary-batch/:salaryBatchId/rollback

from oo-job-service.b016b808

Reverts salary batch


PUT to /salary-batch/:salaryBatchId/consultant

from oo-job-service.b016b808

Modify included consultants in the salary batch

schedule


GET to /schedule/consultant

from oo-job-service.b016b808

Get consultant schedule in given date range.


GET to /schedule/consultant-old

from oo-job-service.b016b808 | Note: Use - GET to /schedule/consultant

Get consultant schedule


GET to /schedule/job

from oo-job-service.b016b808

Get consultant schedule


GET to /schedule/job/count

from oo-job-service.b016b808

Get consultant schedule counts

stats


GET to /stats/job

from oo-job-service.b016b808

Get statistics of jobs


GET to /stats/job/excel

from oo-job-service.b016b808 | Note: Use https://oo-api-doc.test-1.fruster.se/#GET-to-/report/customer-job-stats

Get statistics of jobs excel

subsidiary


DELETE to /subsidiary/:subsidiaryId

from oo-organisation-service.25f8f58f

Delete a subsidiary (dotterbolag). Blocked while consultants or customers belong to it.


GET to /subsidiary

from oo-organisation-service.25f8f58f

Get subsidiary list (recruitmentContract omitted)


GET to /subsidiary/:subsidiaryId

from oo-organisation-service.25f8f58f

Get a subsidiary by id


POST to /subsidiary

from oo-organisation-service.25f8f58f

Create a subsidiary (dotterbolag). Its identity, recruitmentContract and pools override the parent organisation's values.


PUT to /subsidiary/:subsidiaryId

from oo-organisation-service.25f8f58f

Update a subsidiary (dotterbolag).

time-report


GET to /time-report

from oo-job-service.b016b808

Get time reports for user


GET to /time-report/:entryId

from oo-job-service.b016b808

Get time report by id


POST to /time-report/publish

from oo-job-service.b016b808

Publishes time reports to customer users. This can either be done by providing id's of time reports to publish or by providing pool in which all time reports that are already attested by admin will be published.


PUT to /time-report/:entryId

from oo-job-service.b016b808

<p>Update time report by id. NOTE: all user roles use this endpoint to update time reports.</p><p>State sequence. PENDING => NOTWORKED,WORKED => ATTESTEDBYADMIN => ATTESTEDBYCUSTOMER, DECLINEDBYCUSTOMER </p><p>Admin can handle all status. But need to do it in sequence</p><p>Customer can ATTESTEDBYCUSTOMER and DECLINEDBYCUSTOMER. A comment need when decline. Admin will RESOLVEDDECLINEBYADMIN declined time reports </p><p>Consultant can WORKED or NOT_WORKED</p>


PUT to /time-report/:entryId/undo

from oo-job-service.b016b808

Undo time report to previous state. NOTE: Only undo what auth user did. But admin can undo every.

user


DELETE to /user/:userId

from oo-user-service.67cc1a03

Delete an account


GET to /user/:userId/application

from oo-job-service.b016b808

Get applications by consultant id


GET to /user/:userId/contact-summary

from oo-user-service.67cc1a03

Get contact information to user no mater of role. Is primarily used when need to get contact information from a user id. Only used by dashboard users.


GET to /user/:userId/document

from oo-user-service.67cc1a03

Get a list of documents by consultant


GET to /user/:userId/job

from oo-job-service.b016b808

Get matching jobs for a consultant


GET to /user/:userId/last_activity

from oo-user-service.67cc1a03

Sends a ping for analytic purposes


GET to /user/:userId/shift

from oo-job-service.b016b808

Get shifts by consultant id


POST to /user/message

from oo-user-service.67cc1a03

Send notifications to list of users


POST to /user/resend-verification/:email

from oo-fruster-user-service.ed91b8f9

Generates a new email verification token and resends email w/ token to the provided user. Response has status code 200 if successful.


POST to /user/verify/:tokenId

from oo-fruster-user-service.ed91b8f9

Verifies a user's email address by providing a token sent to the user by email. Response has status code 200 if successful.


PUT to /user/update-password

from oo-fruster-user-service.ed91b8f9

Updates password of auth user's account. Requires to validation of old password before new can be set. Response has status code 202 if successful.

Ws endpoints

out


ws.out.:userId.>

from oo-api-gateway.8a0147e8

Sends a message to a client (user) via websocket, if such connection exists. The message is sent to a userId with a label (in place of the >). If sent to ws.out.e3bcf884-8b49-46ae-8546-8dcc65b56932.new-notification (The label being new-notification) the user will receive the message in the handler registered to new-notification. Can be used to send a global message to all connected users by providing a * as userId. To specify a list of users to send to * is used as userId and req.to is set to an array of userIds.

public


ws.out.public.>

from oo-api-gateway.8a0147e8

Sends a message to all connected users. Public and non public connections. The > is the label for the message being sent. E.g. ws.out.public.psa (Where the label is psa). This endpoint will make it possible for the public clients to subscribe to the endpoint without knowing their assigned uuid.

Service endpoints

auth-service

|

auth-service.decode-token

from oo-auth-service.33b8fd75

Decodes a jwt token.



auth-service.generate-jwt-token-for-user.cookie

from oo-auth-service.33b8fd75

Generates a web JWT token for a user matching the inputted Mongo query. Used for external logins.


auth-service.generate-jwt-token-for-user.token

from oo-auth-service.33b8fd75

Generates a web JWT token for a user matching the inputted Mongo query. Used for external logins.



auth-service.get-session-details-by-user-id

from oo-auth-service.33b8fd75

Gets session details for a user. Will return all values as null if user hasn't been active since the session details functionality was implemented (sometime around 2020-06-11).


auth-service.logout-users-by-id

from oo-auth-service.33b8fd75

Logs out a list of users. Does not matter if user is logged in via cookie or token.


auth-service.refresh-token

from oo-auth-service.33b8fd75

Gets a fresh access token by providing a refresh token.

file-service

|

file-service.delete-file

from file-service.8acf071c

Delete file from s3 bucket


file-service.get-files

from file-service.8acf071c

Get all files in the bucket


file-service.get-signed-url

from file-service.8acf071c

Gets an temporary url to a file that will expire after provided or default TTL


file-service.is-processing-completed

from file-service.8acf071c

Check whether the video file processing is completed or not

fruster-web-bus

|

fruster-web-bus.unregister-client

from oo-api-gateway.8a0147e8

Request to (forcefully) unregister (a) websocket client. Can be done by either providing the jwt-token to unregister one connection or the id of the user to unregister all connections for user.

mail-service

|

mail-service.get-template-by-id

from oo-mail-service.d2eeab33

Get mail template by its id


mail-service.process-grouped-mail-timeouts

from oo-mail-service.d2eeab33

To be used by schedule service. Checks for timed out grouped mails. If any is timeout; The pending mails are sent out as one mail and the batch is decreased (Until 0 and then removed).


mail-service.send

from oo-mail-service.d2eeab33 | Note: Use mail-service.send-mail instead

mail-service.send-grouped-mail

from oo-mail-service.d2eeab33

Sends a mail that can be grouped. mails sent using this endpoint will be sent in groups, based off the GROUPED_MAIL_BATCHES config. mails are grouped by email (taken from the to array) and key.

		When used with multiple `email`s in the `to` array, each `email` is grouped individually.

		The grouping of mails happens in batches.
		Each batch “level” has a `numberOfMessages` (Number of messages before next batch level is reached)
		and `timeout` (timeout before level is decreased) defined.
		Every time a batch level's `numberOfMessages` is reached, the pending mails are sent out as one mail
		and the batch level is increased. Each new batch level will (most commonly) increase `numberOfMessages`
		and the `timeout`. If the number of messages is not fulfilled before the timeout is reached,
		the mail is sent with all pending grouped mails; then the batch level is decreased.

		When a grouped mail is sent out; any `{{n}}` in message and/or title will be replaced
		by the number of pending grouped mails at that point. When using templates,
		`n` will be added to `templateArgs` and can then be used by the template.
		Example: When 56 grouped mails with the key `message-service.NEW_MESSAGE` have been sent w/
		the message `You have {{n}}}} new messages!` it becomes:

			 You have 56 new messages!

		Current configuration:

			 Batch level 1 => numberOfMessages: 1, timeout: 0ms

 Batch level 2 => numberOfMessages: 5, timeout: 2m

 Batch level 3 => numberOfMessages: 30, timeout: 5m

		With this configuration after 36
		mails being sent, the email would have received 3 mails;
		granted none of the timeouts have been reached.

mail-service.send-mail

from oo-mail-service.d2eeab33

Sends a mail to one or more mails (emails) addresses

oo-fortnox-service

|

oo-fortnox-service.credit-invoice

from oo-fortnox-service.52083764

Creates a credit invoice for invoice with provided invoice number. Note that invoice must be book kept (in Fortnox) prior to creating a credit invoice.


oo-fortnox-service.delete-salaries

from oo-fortnox-service.52083764

Removes salary transactions in Fortnox, use with caution! This will only remove the transactions in Fortnox, not the salary batch job in our system.


oo-fortnox-service.get-job

from oo-fortnox-service.52083764

Get invoice batch job by its id


oo-fortnox-service.get-salary-job

from oo-fortnox-service.52083764

Get salary batch job by its id


oo-fortnox-service.process-invoices

from oo-fortnox-service.52083764

Creates invoices for provided invoice batch


oo-fortnox-service.process-invoices.completed

from oo-job-service.b016b808

Updates an InvoiceBatch when oo-fortnox-service finishes processing it


oo-fortnox-service.process-salaries

from oo-fortnox-service.52083764

Creates salaries for provided salary batch


oo-fortnox-service.reconcile-stuck-invoice-batch-jobs

from oo-fortnox-service.52083764

Reconciles invoice batch jobs stuck in PROCESSING against Fortnox. Triggered on a cron.

oo-hogia-hr-service

|

oo-hogia-hr-service.create-salary-export

from oo-hogia-hr-service.765c9618

Create Hogia salary export file(s) for provided salary batch

oo-job-service

|

oo-job-service.archive

from oo-job-service.b016b808

Archive jobs and applications after 3 month after its last shift, archive job reports after 6 month


oo-job-service.consultant-salary

from oo-job-service.b016b808

Get consultant salary


oo-job-service.create-job-reports

from oo-job-service.b016b808

Create job reports when last shift of the iso week has ended


oo-job-service.doctor

from oo-job-service.b016b808

Performs checks on data in job service, is used to catch inconsistencies in data, should be invoked once every day


oo-job-service.get-active-jobs

from oo-job-service.b016b808

Get active jobs for given query (consultant and customer)


oo-job-service.get-applications-by-user

from oo-job-service.b016b808

Get applications by consultant id


oo-job-service.get-booked-shifts-by-consultants

from oo-job-service.b016b808

Get booked shifts (from ACCEPTED applications) for multiple consultants within a date range, grouped by consultant


oo-job-service.get-invoice-batch

from oo-job-service.b016b808

oo-job-service.get-jobs-by-query

from oo-job-service.b016b808

Get jobs by query


oo-job-service.get-requirement-tag-usage

from oo-job-service.b016b808

Counts the organisation's active jobs (OPEN, BOOKED, BOOKEDWITHUNMANNED_SHIFTS) whose requirements.tags contain the given consultant tag key.


oo-job-service.get-salary-batch

from oo-job-service.b016b808

oo-job-service.get-salary-preview

from oo-job-service.b016b808 | Note:

Calculates a preview of consultant salary. Will perform calculations but not actually make any changes.

					  This is useful so i.e. consultants can get a hunch of the salary he/she will get or it can be used in reports.

					  Note that this should **NOT** be mistaken with PreviewSalaryBatch which is something else.

oo-job-service.get-shifts-by-user

from oo-job-service.b016b808

Get shifts by consultant id


oo-job-service.get-time-reports-by-query

from oo-job-service.b016b808

Get time reports by query


oo-job-service.send-shift-finished-notification

from oo-job-service.b016b808

Send a push notification to the consultants after shift end


oo-job-service.send-shift-start-reminder

from oo-job-service.b016b808

Send a push notification to the consultants to reminder about that shift starts in ~1 hour


oo-job-service.send-time_report-reminder-notification

from oo-job-service.b016b808

Send a push notification to the consultants to reminder about time report


oo-job-service.silent-attest

from oo-job-service.b016b808

Auto attest time reports which are still not attested by customer


oo-job-service.strip-job-tag

from oo-job-service.b016b808

Strips a descriptive job tag (jobTagTypes key) from all jobs of an organisation. Used as the cross-service cascade when the tag type is deleted. Idempotent.


oo-job-service.strip-requirement-tag

from oo-job-service.b016b808

Strips a consultant tag (consultantTagTypes key) from the requirements.tags of all jobs of an organisation. Used as the cross-service cascade when the tag type is deleted. Idempotent.


oo-job-service.timeout-invitations

from oo-job-service.b016b808

Timeout invitation by scheduler


oo-job-service.update-job

from oo-job-service.b016b808

Update a job via service

oo-notification-service

|

oo-notification-service.create-notification

from oo-notification-service.6db952a0

Create notification


oo-notification-service.get-template-by-name

from oo-notification-service.6db952a0

Get a single notification template by organisation id and template name


oo-notification-service.settings

from oo-notification-service.6db952a0

Get notification templates and settings by organisation id

oo-organisation-service

|

oo-organisation-service.add-customer-history

from oo-organisation-service.25f8f58f

Record a customer timeline event on behalf of another service. Used for customer users, which live in oo-user-service.


oo-organisation-service.get-contract-by-id

from oo-organisation-service.25f8f58f

Get contract by id


oo-organisation-service.get-customer-by-id

from oo-organisation-service.25f8f58f

Get an customer by id


oo-organisation-service.get-customers-by-query

from oo-organisation-service.25f8f58f

Get customers by query


oo-organisation-service.get-ob-dates

from oo-organisation-service.25f8f58f

Get ob dates for given contracts and given date range


oo-organisation-service.get-ob-dates-by-contracts

from oo-organisation-service.25f8f58f

Get ob dates for given contract ids and a single date range


oo-organisation-service.get-organisation-by-id

from oo-organisation-service.25f8f58f

Get an organisation by id


oo-organisation-service.get-organisations-by-query

from oo-organisation-service.25f8f58f

Get organisations by query


oo-organisation-service.get-price

from oo-organisation-service.25f8f58f

Get price for given competences with customer id


oo-organisation-service.get-prices-by-contracts

from oo-organisation-service.25f8f58f

Get price for given competences with contract


oo-organisation-service.get-subsidiary-by-id

from oo-organisation-service.25f8f58f

oo-organisation-service.getObRulesByContracts

from oo-organisation-service.25f8f58f

Get OB rules by contract IDs for salary calculation

oo-report-service

|

oo-report-service.freeze-data

from oo-report-service.a25f66de

Freeze dashboard data


oo-report-service.refresh-dashboard-cache

from oo-report-service.a25f66de

Refresh dashboard cache for all organizations


oo-report-service.reset-data

from oo-report-service.a25f66de

Reset dashboard data

oo-user-log-service

|

oo-user-log-service.send-daily-digest

from oo-user-log-service.9650d72b

oo-user-service

|

oo-user-service.archive

from oo-user-service.67cc1a03

Archive consultant ratings after 6 month


oo-user-service.bulk-invite-users

from oo-user-service.67cc1a03

Bulk invite multiple users by their IDs


oo-user-service.create-customer-account

from oo-user-service.67cc1a03

Create a customer account


oo-user-service.get-all-blocked-consultants

from oo-user-service.67cc1a03

Get all blocked consultants


oo-user-service.get-auth-user

from oo-user-service.67cc1a03

Get active and non delete auth user details for auth service


oo-user-service.get-block-consultants

from oo-user-service.67cc1a03

Get block consultants by a customer


oo-user-service.get-block-customers

from oo-user-service.67cc1a03

Get block customers for a consultant


oo-user-service.get-collective-agreement-by-id

from oo-user-service.67cc1a03

Get a collective agreement by id


oo-user-service.get-collective-agreements

from oo-user-service.67cc1a03

Get collective agreements


oo-user-service.get-consultants-by-collective-agreement

from oo-user-service.67cc1a03

Get consultants using a specific collective agreement


oo-user-service.get-consultants-by-query

from oo-user-service.67cc1a03

Get consultants by MongoDB query with flexible filtering, pagination, and sorting


oo-user-service.get-ratings

from oo-user-service.67cc1a03

For getting ratings by query


oo-user-service.remove-expired-consultant-tags

from oo-user-service.67cc1a03

Removes expired tags (expiresAt in the past) from consultant profiles. Idempotent sweep triggered by scheduled job.


oo-user-service.send-certification-expiry-reminders

from oo-user-service.67cc1a03

Sends push reminders to consultants whose certifications expire soon, for certification types with reminders enabled. Idempotent sweep triggered by scheduled job.


oo-user-service.send-set-password-mail

from oo-user-service.67cc1a03

Send set password mail after activation of the customer


oo-user-service.strip-consultant-tag

from oo-user-service.67cc1a03

Removes a consultant tag (by key) from all consultants of an organisation. Idempotent sweep used by the consultant-tag-type cascade delete.


oo-user-service.update-consultant

from oo-user-service.67cc1a03

Update a consultant account via service


oo-user-service.update-consultant-location

from oo-user-service.67cc1a03

Update consultant's location by their postal code


oo-user-service.update-search-text

from oo-user-service.67cc1a03

Update search text for every users. This use by schedule

password-reset-service

|

password-reset-service.generate-password-reset

from oo-password-reset.3aeed82c

Works much like the password-reset-service.request-password-reset endpoint but does not send email and returns token in response. Username is configured to be: email


password-reset-service.get-password-reset

from oo-password-reset.3aeed82c

Gets whether or not the provided token is still valid for resetting password. Typically used to display a warning to the user before posting new password that the token is invalid.


password-reset-service.request-password-reset

from oo-password-reset.3aeed82c

Requests a password reset to by providing a username. Username is configured to be: email.


password-reset-service.reset-password

from oo-password-reset.3aeed82c

Reset user's password with token from password reset-email.

push-service

|

push-service.get-logs

from oo-push-service.15767e71

Get push logs


push-service.process-grouped-notification-timeouts

from oo-push-service.15767e71

To be used by schedule service. Checks for timed out grouped notifications. If any is timedout; The pending notifications are sent out as one push and the batch is decreased (Until 0 and then removed).


push-service.send

from oo-push-service.15767e71 | Note: Use push-service.send-notification instead.

Sends a push notification to one or many users.


push-service.send-grouped-notification

from oo-push-service.15767e71

Sends a notification that can be grouped. Notifications sent using this endpoint will be sent in groups, based off the GROUPED_NOTIFICATION_BATCHES config. Notifications are grouped by userId (taken from the to array) and key. When used with multiple userIds in the to array, each userId is grouped individually.

The grouping of notifications happens in batches. Each batch “level” has a numberOfMessages (Number of messages before next batch level is reached) and timeout (timeout before level is decreased) defined. Every time a batch level's numberOfMessages is reached, the pending notifications are sent out as one push and the batch level is increased. Each new batch level will (most commonly) increase numberOfMessages and the timeout. If the number of messages is not fulfilled before the timeout is reached, the push is sent with all pending grouped notifications; then the batch level is decreased.

When a grouped notification is sent out; any {{n}} will be replaced by the number of pending grouped notifications at that point. Example: When 56 grouped notifications with the key message-service.NEW_MESSAGE have been sent w/ the body You have {{n}}}} new messages! it becomes:

 You have 56 new messages!

Current configuration:

 Batch level 1 => numberOfMessages: 1, timeout: 0ms

 Batch level 2 => numberOfMessages: 5, timeout: 15m

With this configuration after 6 notifications being sent, the user would have received 2 pushes; granted none of the timeouts have been reached.


push-service.send-notification

from oo-push-service.15767e71

Sends a push notification to one or many users.


push-service.unregister

from oo-push-service.15767e71

Unregisters all registrationTokens (devices) for the provided user.

report-service

|

report-service.create-report

from oo-fruster-report-service.af3aa709

A service that accepts JSON (in) and outputs reports in different formats.

schedule-service

|

schedule-service.create-job

from oo-schedule-service.31d3274a

Creates or updates (upserts) a new job that runs on a given interval or time. Read more about fruster-schedule-service.


schedule-service.remove-job

from oo-schedule-service.31d3274a

Removes a previously scheduled job.

sms-auth-service

|

sms-auth-service.send-code

from oo-sms-auth-service.6e7a7273

Send code to sms

sms-service

|

sms-service.send

from oo-sms-service.b0bc6897 | Note: Use sms-service.send-sms instead

sms-service.send-sms

from oo-sms-service.b0bc6897

Sends an sms to one or more phone numbers using 46ELKS's sms framework

sse

|

sse.out.*.>

from oo-api-gateway.8a0147e8

sse.out.:userId.>

from oo-api-gateway.8a0147e8

user-service

|

user-service.add-roles

from oo-fruster-user-service.ed91b8f9

Adds inputted roles to specified user. Can only add roles existing in configuration. Response has status code 202 if successful.


user-service.availability-reminder

from oo-user-service.67cc1a03

Sends reminders to consultants to update their availability


user-service.create-user

from oo-fruster-user-service.ed91b8f9

Creates a fruster user. Must include a few base fields but can contain any number of custom fields. Response has status code 201 if successful. Automatically splits data between user and profile if configured to.


user-service.delete-user

from oo-fruster-user-service.ed91b8f9

Deletes a user. Response has status code 200 if successful. pub.user-service.user-deleted is published after deletion


user-service.delete-users-by-query

from oo-fruster-user-service.ed91b8f9

Deletes users by a query. Response has status code 200 if successful. pub.user-service.user-deleted is published after deletion. Request body is the query to delete with. Cannot use empty query.


user-service.get-by-aggregate

from oo-fruster-user-service.ed91b8f9

Gets user records by aggregate without process aggregate result


user-service.get-scopes

from oo-fruster-user-service.ed91b8f9

Gets all scopes for specified roles in a flat array. E.g. input ['admin', 'user', 'super-admin'] would return ['', 'admin.', 'profile.get']. Response has status code 200 if successful.


user-service.get-user

from oo-fruster-user-service.ed91b8f9 | Note: Use user-service.get-users-by-query instead.

Gets users by query. Response has status code 200 if successful.


user-service.get-users-by-aggregate

from oo-fruster-user-service.ed91b8f9

Gets users by aggregate. The result process with view model


user-service.get-users-by-query

from oo-fruster-user-service.ed91b8f9

Gets users by query. Note: Return data may vary depending on the configuration. Configured user fields: ALL (Will always return id,email,password,roles,scopes)

Can be expanded to return both user and profile data using expand: "profile" if configured to split the data. If expand is used; the query can be used to query profile fields as well: { "profile.firstName": "Bob" }. With expand; the data is returned {...userData, profile: {...profileData}}. Can fetch only user count without users, using count: true. if count is used returns totalCount with empty users array


user-service.remove-roles

from oo-fruster-user-service.ed91b8f9

Removes inputted roles from specified user. Cannot remove the last role. Response has status code 202 if successful.


user-service.resend-verification

from oo-fruster-user-service.ed91b8f9

Generates a new email verification token and resends email w/ token to the provided user. Response has status code 200 if successful.


user-service.set-password

from oo-fruster-user-service.ed91b8f9

Sets password of a user. Used by password reset service. Note: Updating a user's password should be done w/ the update-password endpoint. Response has status code 202 if successful.


user-service.update-password

from oo-fruster-user-service.ed91b8f9

Updates password of an account. Requires to validation of old password before new can be set. Response has status code 202 if successful.


user-service.update-user

from oo-fruster-user-service.ed91b8f9

Updates a user. Can contain any number of custom fields. Response has status code 200 if successful.


user-service.validate-password

from oo-fruster-user-service.ed91b8f9

Validates that inputted password becomes the same hash as for an account. Typically used by auth service for login. Response has status code 200 if successful. Validation can be done on email


user-service.verify-email

from oo-fruster-user-service.ed91b8f9

Verifies a user's email address by providing a token sent to the user by email. Response has status code 200 if successful.