Developers

API v3 · Current

Sage 100 Contractor Notes API

Browse the selected domain reference below. For authentication, request and response conventions, errors, locking, and writes, start with the Getting started guide.

API v3 reference

Notes API

The notes on a record: the important note Sage shows when the record is opened, and the note. Add to them or replace them on an AP invoice, ledger transaction, vendor, job, change order, purchase order, AR invoice, client, employee or service invoice, and read them back.

Operations
2
Release
v3.0.0-alpha.28

Authentication, headers, the shared query contract, errors, locking and writes are in Getting started. The interactive reference, with every schema, is below.

Operations

POST/api/v3/notes

Write a record's notes

Add to or replace one record's notes.

Only the notes change: nothing else on the record is written. The important note sent always goes on a new line after the record's important note: it is never replaced or cleared. With noteMode append (the default) the note sent goes on a new line after the record's note, so nothing a Sage user typed is lost; with replace it replaces the note. The notes are read and written in one transaction, so a change made in Sage at the same moment is never overwritten by an append. The reply is the record's notes as stored after the write.

Refused, with nothing written: a record that does not exist (404 RECORD_NOT_FOUND); a request with neither importantNote nor noteText (400 FIELD_REQUIRED); a part holding |, U+001E or another control character, or an empty importantNote (400 FIELD_INVALID).

Request body: NoteInput

  • entityrequired
    "ap-invoices" | "ledger-transactions" | "vendors" | "jobs" | "change-orders" | "purchase-orders" | "ar-invoices" | "clients" | "employees" | "service-invoices"

    The kind of record.

  • idrequired
    integer (int64)

    The record's number: as the record's own read or write result gives it.

  • noteMode
    "append" | "replace"

    How noteText is written: append (the default) or replace.

  • importantNote
    string

    The important note: the text Sage shows in a pop-up when the record is opened. Added to the end of the record's important note. It is never replaced or cleared; to change it, edit it in Sage. "" is refused with FIELD_INVALID.

  • noteText
    string

    The note: added to the end of the record's note, or replacing it, per noteMode.

GET/api/v3/notes

Read a record's notes

Read one record's notes.

Answers 404 RECORD_NOT_FOUND when the record does not exist.

Parameters

  • entityrequiredquery
    "ap-invoices" | "ledger-transactions" | "vendors" | "jobs" | "change-orders" | "purchase-orders" | "ar-invoices" | "clients" | "employees" | "service-invoices"

    The kind of record.

  • idrequiredquery
    integer (int64)

    The record's number.

Section 6

Full API reference

This is the v3 contract itself, not a description of it. The document below is OpenAPI 3.1 compiled from the TypeSpec the server and the generated clients are both built from, so what it says is what the API does. The guide above covers the 87 query entities, 38 writes, and the problem shape for each status. This reference includes the complete field and type definitions.

Only the selected domain is loaded into the interactive reference. The complete v3 contract remains available for generators and tooling.

The field-level reference for all 213 operations. Expand an entity's model to see its available properties and types. Those property names are used in select, orderBy, matchFields and every match.field.

Use it as an index rather than reading it front to back. The 87 /query entries all share the contract from section 2, and every operation's failure responses are drawn from the 16 statuses the contract declares (see section 3). Those responses are declared once and referenced, so a status on one route has the same meaning on every route.

Loading the reference domains…

Something here does not match what you see?

This guide is maintained by hand alongside the generated reference, so if a field, a status value or a cascade does not behave the way it is described here, that is worth reporting rather than working around. Tell us what you called and what came back.

Contact us