Skip to main content

Conventions used in this cookbook

Identifiers

FieldRole
id (UUID)Internal Ublo id — persist after create
customReferenceShort Ublo reference (e.g. U000014, O000002)
externalId / foreignIdYour business key for import/export sync

In the examples, UUIDs are placeholders:

00000000-0000-4000-8000-000000000001

Replace them with the IDs returned by your mutations.

Money

In the analyzed UI captures, monetary amounts are integers in euro cents:

API valueBusiness reading
100000€1,000.00
20000€200.00
300000€3,000.00

Always confirm the scale on your environment with a read (getUnit / tenant account) after writing.

Fragments

The admin UI often sends large fragments (UnitV2Fields, etc.). For an integration, trim field selection to the strict minimum — the schema allows this partial selection.

GraphQL mutations

Examples target RootMutationType fields from the backend schema (operation names = argument names = schema). Admin UI GraphQL documents may use a different operation name (upsert…, …NoReturn) while resolving the same field — do not rely on those frontend aliases for an API integration.

Errors

Typical example:

{
"data": null,
"errors": [
{
"message": "Validation failed",
"extensions": { "code": "VALIDATION_ERROR" }
}
]
}

Handle extensions.code in your logic (validation, permissions, not found…).

Example sources

See Source legend.