Create or update a note on a work order

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://developers.praxedo.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "public-rest-apis MCP server": {
    "url": "https://developers.praxedo.com/mcp"
  }
}

Close
PUT /eTech/rest/ws/diagnostic/v1/workOrders/code:{workOrderCode}/notes/code:{noteCode}

Creates a note on the work order if no note with noteCode exists yet, else updates the existing note's content / coordinates. Supports standard and custom notes. For custom notes tech visibility is always false.

Rate limit range : Low

Path parameters

  • workOrderCode string Required

    Business code of the work order. Case insensitive.

  • noteCode string Required

    Business code of the note provided by tierce app.

application/json

Body Required

  • noteTypeCode string Required

    Code of the note type, as configured in Praxedo. Represent category of the note (standard note or call note or custom note).

  • author string

    Identifier of the author of the note (name, system...).

  • date string(date-time)

    ISO 8601 timestamp of the note. Must not be in the future.

  • coordinates string

    Phone number of the caller. Required when the note type's category is INCOMING_CALL or OUTGOING_CALL. Optional for category NOTE.

  • content object Required

    Content of the note. Exactly one of text or reportFields must be supplied, depending on whether the note type has an associated form: text for note types without a form, reportFields for note types with a form.

    One of:
  • visibility object

    Determines who can see the note. If omitted entirely, visibility defaults are inherited from the note type configuration. If supplied, it fully overrides those defaults (no partial merge).

    Hide visibility attributes Show visibility attributes object
    • technician boolean

      Whether the note is visible to the field technician.

    • customerPortalUser boolean

      Whether the note is visible to the customer portal user.

Responses

  • 201 application/json

    Note created.

  • 204 application/json

    Note updated.

  • 400 application/json

    Bad Request - validation errors.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 401 application/json

    Unauthorized - authentication issue.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 403 application/json

    Forbidden - not enough rights.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 429 application/json

    Too Many Requests.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

  • 500 application/json

    Internal server error.

    Hide response attributes Show response attributes object
    • errors array[object]

      Array of errors. Contains at least one element.

      Hide errors attributes Show errors attributes object

      Contains code and message for error.

      • code string Required
      • message string Required
    • errorReference string Required

      Error unique reference. Communicated to support, this will help to locate the issue.

      Format should match the following pattern: [0-1a-z].

PUT /eTech/rest/ws/diagnostic/v1/workOrders/code:{workOrderCode}/notes/code:{noteCode}
curl \
 --request PUT 'https://ws-eu1.praxedo.com/eTech/rest/ws/diagnostic/v1/workOrders/code:WO-2026-00123/notes/code:MAESTRO-NOTE-77213' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "noteTypeCode": "STANDNOTE",
  "author": "DHA",
  "date": "2025-11-05 14:32:00 UTC",
  "content": {
    "text": "Gate code is #9292"
  },
  "visibility": {
    "technician": true,
    "customerPortalUser": false
  }
}'
Request examples
{
  "noteTypeCode": "STANDNOTE",
  "author": "DHA",
  "date": "2025-11-05 14:32:00 UTC",
  "content": {
    "text": "Gate code is #9292"
  },
  "visibility": {
    "technician": true,
    "customerPortalUser": false
  }
}
{
  "noteTypeCode": "INC",
  "author": "DHA",
  "date": "2025-11-05 14:32:00 UTC",
  "coordinates": "+33612345678",
  "content": {
    "text": "Customer called to confirm appointment."
  },
  "visibility": {
    "technician": false,
    "customerPortalUser": false
  }
}
{
  "noteTypeCode": "OUT",
  "author": "DHA",
  "date": "2025-11-05 16:05:00 UTC",
  "coordinates": "+33698765432",
  "content": {
    "text": "Called customer back to reschedule the visit to next Tuesday."
  },
  "visibility": {
    "technician": true,
    "customerPortalUser": false
  }
}
{
  "noteTypeCode": "NFORM",
  "author": "DHA",
  "date": "2025-11-05 14:32:00 UTC",
  "content": {
    "reportFields": {
      "REASON": {
        "dropDownValue": "Reschedule"
      },
      "CALLBACK_DATE": {
        "dateValue": "2025-12-01"
      },
      "CALLBACK_TIME": {
        "timeValue": 52200
      },
      "CONTACT_NAME": {
        "textValue": "John Smith"
      },
      "VIP?": {
        "booleanValue": false
      },
      "PARTS_COUNT": {
        "numericValue": 3
      },
      "PROCEDURE_LINK": {
        "urlValue": "https://intranet.acme.com/procedures/reschedule"
      }
    }
  },
  "visibility": {
    "technician": true,
    "customerPortalUser": false
  }
}
{
  "noteTypeCode": "NFORM",
  "author": "DHA",
  "date": "2025-11-06 09:12:00 UTC",
  "content": {
    "reportFields": {
      "REASON": {
        "dropDownValue": "Resolved"
      },
      "CONTACT_NAME": {
        "textValue": "John Smith"
      }
    }
  },
  "visibility": {
    "technician": true,
    "customerPortalUser": false
  }
}
Response examples (201)
Response examples (204)
Response examples (400)
{
  "errors": [
    {
      "code": "diagnostic.workorders.code.mandatory",
      "message": "Missing code in path."
    }
  ],
  "errorReference": "abcdefghij0123456789"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.code.mandatory",
      "message": "Missing code in path."
    }
  ],
  "errorReference": "abcdefghij0123456789"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.code.unknown",
      "message": "The work order [WO-2025-004821] is unknown. It don't exisits or it is outside oauth2 hierarchy."
    }
  ],
  "errorReference": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.noteTypeCode.unknown",
      "message": "The note type code [NFORM] is unknown."
    }
  ],
  "errorReference": "223e4567-e89b-12d3-a456-426614174001"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.reportFields.code.unknown",
      "message": "The report fields code [BUDGET] us unknown."
    }
  ],
  "errorReference": "323e4567-e89b-12d3-a456-426614174002"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.date.format",
      "message": "Date don't respect expected format."
    }
  ],
  "errorReference": "423e4567-e89b-12d3-a456-426614174003"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.reportFields.value.format",
      "message": "The report fields [PARTS_COUNT] value don't respect expected format."
    }
  ],
  "errorReference": "523e4567-e89b-12d3-a456-426614174004"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.noteTypeCode.mandatory",
      "message": "Property noteTypeCode is required."
    }
  ],
  "errorReference": "623e4567-e89b-12d3-a456-426614174005"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.mandatory",
      "message": "Property content is required."
    }
  ],
  "errorReference": "723e4567-e89b-12d3-a456-426614174006"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.text.mandatory",
      "message": "Property content.text is required for standard notes."
    }
  ],
  "errorReference": "823e4567-e89b-12d3-a456-426614174007"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.reportFields.mandatory",
      "message": "Property content.reportFields is required for custom notes."
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614174008"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.content.fields.mandatory",
      "message": "Fields [code] is required for custom notes."
    }
  ],
  "errorReference": "923e4567-e89b-12d3-a456-426614175838"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.coordinates.mandatory",
      "message": "Property coordinates is required for call notes."
    }
  ],
  "errorReference": "a23e4567-e89b-12d3-a456-426614174009"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.date.futur",
      "message": "A date cannot be set in the futur"
    }
  ],
  "errorReference": "b23e4567-e89b-12d3-a456-426614174010"
}
{
  "errors": [
    {
      "code": "diagnostic.workorders.note.invalid.json",
      "message": "Invalid Json format."
    }
  ],
  "errorReference": "c23e4567-e89b-12d3-a456-426614174011"
}
Response examples (401)
{
  "errors": [
    {
      "code": "unauthorized.nocredentials",
      "message": "No credentials."
    }
  ],
  "errorReference": "f939c6b8c15045c9a70f500fdb570555"
}
{
  "errors": [
    {
      "code": "unauthorized.badcredentials",
      "message": "Bad Credentials."
    }
  ],
  "errorReference": "f1028f99811b422eb21f5ff176664069"
}
Response examples (403)
{
  "errors": [
    {
      "code": "access.forbiden",
      "message": "You don't have the rights to access this resource."
    }
  ],
  "errorReference": "a745dc4c5a2b473aaf8ce94c9260aa8f"
}
Response examples (429)
{
  "errors": [
    {
      "code": "ratelimiter.toomanyrequest",
      "message": "Rejected because of the rate limit definition."
    }
  ],
  "errorReference": "973326230a3f44daba6cc34a5939b4fb"
}
Response examples (500)
{
  "errors": [
    {
      "code": "internal.server.error",
      "message": "Something went wrong."
    }
  ],
  "errorReference": "6377010431314bf6b0b95ec4d32ddae0"
}