Finance

Upsert catalog entries in a batch

Upsert catalog entries atomically. Send an array of complete writable records, each with its resource ID. One invalid record rejects the entire batch.

PUT/v1/entries

Body parameters

application/json · array of records · required
code string nullable

Stable code used to identify this catalog value or machine-readable result.

Maximum length: 10000 characters.

ExampleConsulting services
name string required

Display name of the resource.

Minimum length: 1 character. · Maximum length: 255 characters.

ExampleNQD record
description string nullable

Human-readable description of the resource.

Maximum length: 10000 characters.

ExampleConsulting services for January 2026
unitCode string required

Unit code from the workspace catalog.

Minimum length: 1 character. · Maximum length: 128 characters.

Examplehour
quantity string required

Exact decimal string used for financial calculations. Do not round or convert it to a display number.

Maximum length: 128 characters.

Example2.00
pricePerUnit string required

Exact decimal string used for financial calculations. Do not round or convert it to a display number.

Maximum length: 128 characters.

Example100.00
currencyId string required

Currency identifier for the amount. It selects the currency metadata used by the record.

Minimum length: 1 character. · Maximum length: 128 characters.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1F
modifierIds string[] nullable

Ordered modifier identifiers applied to the record.

at most 1000 items

Example1 item
id string required

Opaque identifier for this resource or reference.

Minimum length: 1 character. · Maximum length: 128 characters.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1H

Headers

authorization string required

Bearer workspace API key.

ExampleBearer $NQD_API_KEY
workspace-id string required

Workspace scope for the request. Required for workspace operations and must belong to the authenticated identity.

Minimum length: 1 character. · Maximum length: 128 characters.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1A

Send the complete writable representation or change set. Use the latest updatedAt for If-Match.

Response

200Success

Response headers

x-request-id string

Correlation identifier returned with every response for support and request tracing.

Example550e8400-e29b-41d4-a716-446655440000
data object[]

Returned records. Collections and batches use an array; single records use an object.

ShowHide 11 properties
data[].id string

Opaque identifier for this resource or reference.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1H
data[].code string

Stable machine-readable error or resource code.

ExampleConsulting services
data[].name string

Display name of the record.

ExampleNQD record
data[].description string

Optional human-readable description of the record.

ExampleConsulting services for January 2026
data[].unitCode string

Unit code from the workspace catalog.

Examplehour
data[].quantity string

Exact decimal string used for financial calculations. Do not round or convert it to a display number.

Maximum length: 128 characters.

Example2.00
data[].pricePerUnit string

Exact decimal string used for financial calculations. Do not round or convert it to a display number.

Maximum length: 128 characters.

Example100.00
data[].currency object

Referenced currency with its opaque ID and ISO 4217 currency code.

ShowHide 3 properties
data[].currency.id string

Opaque identifier for this resource or reference.

Minimum length: 1 character. · Maximum length: 128 characters.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1F
data[].currency.code string

ISO 4217 currency code, such as SAR or USD.

Minimum length: 1 character. · Maximum length: 128 characters.

ExampleSAR
data[].currency.conversion object

Currency conversion quote used for reporting, including source, target, and rate.

ShowHide 3 properties
data[].currency.conversion.from string

ISO 4217 code of the source currency in this persisted quote.

Minimum length: 1 character. · Maximum length: 128 characters.

ExampleSAR
data[].currency.conversion.to string

ISO 4217 code of the target reporting currency in this persisted quote.

Minimum length: 1 character. · Maximum length: 128 characters.

ExampleSAR
data[].currency.conversion.rate string

Exact decimal conversion rate from the quote source currency to its target currency.

Maximum length: 128 characters.

Example1.00
data[].modifiers object[]

Modifiers applied to one entry or the whole source. Supported values are signed fixed amounts or percentages, such as `15.00%` or `-25.00`; arbitrary multiplication and division are not supported.

at most 1000 items

ShowHide 6 properties
data[].modifiers[].id string

Opaque identifier for this resource or reference.

Minimum length: 1 character. · Maximum length: 128 characters.

Example01JQ2T5Y5Q3R8W9N6M4K2H7P1J
data[].modifiers[].appliedId string nullable

Stable identity of this saved modifier application. Preserve it when updating a financial record, including repeated uses of the same catalog modifier.

Minimum length: 1 character. · Maximum length: 128 characters.

ExampleConsulting services
data[].modifiers[].name string

Display name of the record.

Minimum length: 1 character. · Maximum length: 10000 characters.

ExampleService fee
data[].modifiers[].description string nullable

Optional human-readable description of the record.

Maximum length: 10000 characters.

ExampleValue added tax
data[].modifiers[].entryIndex number nullable

entry index within modifiers.

Example100
data[].modifiers[].value string

Modifier value. A trailing `%` marks a percentage; a leading `-` marks a decrease. Modifiers support fixed or percentage adjustments, not arbitrary multiplication or division.

Maximum length: 128 characters.

Example5
data[].createdAt string

ISO 8601 timestamp for the authored or payment event. Recurring records preserve their scheduled occurrence.

Example2026-01-15T12:00:00.000Z
data[].updatedAt string

Applied snapshot revision. Send the latest value in If-Match for child writes; the response returns the new revision.

Example2026-01-15T12:00:00.000Z

Possible errors

400 Invalid request

Response headers

x-request-id string

Correlation identifier returned with every response for support and request tracing.

Example550e8400-e29b-41d4-a716-446655440000
error object

Error details returned for a failed request.

ShowHide 4 properties
error.code string

Stable machine-readable error or resource code.

Exampleinvalid_input
error.message string

Human-readable explanation of the result or error.

ExampleThe request could not be validated.
error.requestId string

Correlation identifier for support and request tracing.

Example550e8400-e29b-41d4-a716-446655440000
error.details object nullable

Additional structured details about the result or error.

ShowHide 1 property
error.details.issues object[]

Structured field issues returned when request validation fails.

ShowHide 3 properties
error.details.issues[].path string | number[]

Field path where the validation issue occurred.

One of: string alternative 1, number alternative 2

Example0 items
error.details.issues[].reason string

Machine-readable reason for the validation issue.

Allowed values: "expected_type", "required", "unexpected_property", "invalid_value", "invalid_json", "invalid_query", "unsupported_media_type", "body_too_large", "body_timeout", "conflicting_scope", "missing_header", "concurrency_required", "invalid_resource_id", "invalid_request"

Exampleinvalid_request
error.details.issues[].code string nullable

Stable machine-readable error or resource code.

Exampleinvalid_input
Example 400 response
{
  "error": {
    "code": "invalid_input",
    "message": "The request could not be validated.",
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "details": {
      "issues": [
        {
          "path": [],
          "reason": "invalid_request"
        }
      ]
    }
  }
}
View raw OpenAPI operation

Use the machine-readable contract for client generation and payload validation.

Open OpenAPI contract ↗