Skip to main content
A To-do is a line of pending work that staff tracks for an Entity and checks off when it is done. A To-do stands alone or links to at most one record: an Invoice, a Bank Movement, or a Ledger Entry. Use To-dos to leave yourself or your team a reminder, such as “Ask the client for the signed contract”, on the record it concerns. To-dos are independent of a record’s Recommendation and of Comments. Setting or clearing one never changes the others.
Staff-only. Every route below requires the staff Role in the Entity’s Organization. A client or viewer caller (session or API key) receives 403 with PERMISSION_DENIED_ERROR. See Access and roles.
Open in the app. This resource has a page in the Sintropix web app at https://app.sintropix.com/{entityId}/todos, where entityId is the same UUID as in the API route. Linked To-dos also appear in the panel of their Invoice, Bank Movement, or Ledger Entry. When you mention a record to a user, include that link. See Link to the App for the full URL grammar.

Linked records

Link a To-do to a record by sending exactly one of invoiceId, bankMovementId, or ledgerEntryId when you create it. The record must belong to the same Entity. The link is set on creation and cannot be changed later. When the linked record goes away, Sintropix keeps the To-do and clears its link, so it becomes stand-alone. This happens when you:
  • Delete the Invoice or the Bank Movement.
  • Unbook the Ledger Entry (its status becomes deleted).
  • Cancel the Scheduled Entry (its status becomes cancelled).
You cannot link a new To-do to an Unbooked Ledger Entry or a cancelled Scheduled Entry.

The To-do object

link.kind tells you which record the To-do points to. Each kind carries the fields you need to display the record and open it in the app.

GET /api/entities/:entityId/todos

List the To-dos of an Entity, open and completed, oldest first. Pass one link filter to list only the To-dos of that record. With no filter, the response holds every To-do of the Entity. Query parameters Send at most one filter. Sending two returns 400. Response 200: an array of To-do objects.

POST /api/entities/:entityId/todos

Create a To-do. You supply the id, so a retried request with the same id returns 409 instead of creating a duplicate. Body Send at most one link id. Omit all three for a stand-alone To-do. Response 201: the created To-do object, including link.

PATCH /api/entities/:entityId/todos/:todoId

Edit the text of a To-do, check it off, or reopen it. Send at least one field. Body Sintropix sets completedAt for you. Checking off a To-do that is already completed keeps its original completedAt. Response 200: the updated To-do object.

DELETE /api/entities/:entityId/todos/:todoId

Delete a To-do permanently. Response 200: the deleted To-do object.

Errors

To-do domain errors carry a code and a params object in the body.

Status codes