Skip to content

PCT Data Contract v2 ​

This document specifies the data entities and columns that a data provider must deliver via the Plato Connector Target (PCT) version 2. Each entity corresponds to a CSV file pushed to S3. What changed compared to v1 is published separately: PCT Data Contract v2: Changelog vs v1.

General Requirements ​

  1. File Format: All files must be in CSV format with comma-separated values
  2. Encoding: UTF-8 encoding is required
  3. Header Row: The first row must contain column names exactly as specified below
  4. Quoting: Fields containing commas, newlines, or double quotes must be enclosed in double quotes. Double quotes within a field must be escaped by doubling them (e.g. "She said ""hello"").
  5. Data Types:
    • All fields are treated as strings unless otherwise noted
    • Timestamp fields: RFC 3339 format, e.g. 2017-05-25T00:00:00.000Z; must be UTC (Z suffix), or have a numerical offset (e.g. +02:00). UTC is preferred.
    • Date-only fields: must be yyyy-MM-dd, e.g. 2026-12-01
    • Numeric fields: Use decimal notation (e.g. 123.45). Integer values do not need a decimal point (e.g. 42 not 42.0). Do not use thousands separators (e.g. 1234567 not 1,234,567)
    • Boolean fields: Use true/false, 1/0, or yes/no consistently

Data Delivery ​

Data is delivered as CSV files to an S3 bucket that Plato sets up for you. The folder you write a file into tells Plato three things: whose data it is, which operation it is, and which entity it contains.

data/{tenant}/reconcile/{EntityName}/{version}/{batchid}
data/{tenant}/update/{EntityName}/{version}
data/{tenant}/delete/{EntityName}/{version}

A delivery is one export session of yours: everything that one export run uploads. It contains all the tenants and all the operations (reconcile, update, delete) that this export is meant to send. Every delivery ends with exactly one success file at the fixed path data/success (see Signalling Delivery Completion).

The path ends at the folder: you do not choose a file name. Plato's Push API names every uploaded file itself, from the time of the upload. To deliver several files for the same entity, upload each one to the same path.

Path segments:

SegmentWhat to put thereExample
dataAlways the literal word data.data
{tenant}The identifier Plato assigns to your company. Plato gives it to you during onboarding; use it exactly as given. If your data is split into several separately delivered units (e.g. one per legal entity), Plato assigns one identifier per unit.acme
operationreconcile, update or delete, in lower case (see Operations below).reconcile
{EntityName}The entity name in UpperCamelCase / PascalCase, exactly as in the headings of this document (e.g. Customers, OrderLines, ProductVariants).Customers
{version}The version of this data contract: 2 for this document. Only the number, without a v prefix.2
{batchid}Reconcile only. A name you choose for one complete snapshot of the entity (see Reconcile batches below). Update and delete paths have no batch folder.2026-09-29_7f3c9a12

Operations:

OperationPurpose
reconcileFull snapshot of the entity. Records missing from a new snapshot compared to the previous one are detected as deletions.
updateIncremental changes since the last reconcile or update.
deleteExplicit record deletions: the key columns of each deleted record (see Delete files below).

These operations can be combined freely. For example, you can use reconcile for periodic full snapshots (with automatic deletion detection between snapshots) and update for intra-day incremental changes. You can also add explicit delete signals on top of either approach. If deletion detection is not required, sending all data via update alone is sufficient.

Reconcile batches ​

A reconcile batch is a complete snapshot of one entity: every record that currently exists. {batchid} names that snapshot.

  1. Choose a new, unique batch id for every snapshot. Any value that is safe in a folder name works. We recommend starting it with the date, followed by a random or sequential part, e.g. 2026-09-29_7f3c9a12.
  2. A snapshot may consist of many files. Put all files of the same snapshot into the same {batchid} folder. This is how you split a large snapshot, for example a first historical load of several million invoice lines, into files of a manageable size.
  3. Plato uses only the latest batch of each entity (the batch whose files arrived last). A new batch replaces the previous snapshot as a whole. So never spread one snapshot over several batch ids: only the last one would count, and every record that is only in an earlier batch would be treated as deleted.
  4. A batch is part of a delivery. The delivery's success file comes after the last file of every batch in it (see Signalling Delivery Completion).

Delete files ​

A delete file lists records that no longer exist in your ERP, one row per record. It is processed in the same run as the reconcile and update files of its delivery.

  1. Only the key columns are required. The key is unique_id, except for these entities:

    EntityKey columns
    ContractLinescontract_line_unique_id
    CreditMemoLinescredit_memo_line_unique_id
    CreditMemoRequestLinescredit_memo_request_line_unique_id
    DebitMemoRequestLinesdebit_memo_request_line_unique_id
    EntityAttributeValuesentity_type, plato_attribute_key
    InvoiceLinesinvoice_line_unique_id
    OrderLinessales_order_line_unique_id
    PartsListLinesproduct_variant_header_unique_id, product_variant_component_unique_id, part_list_type
    ProductVariantAttributeValuesproduct_variant_unique_id, product_attribute_unique_id
    ProductVariantGroupAttributeValuesproduct_variant_group_unique_id, product_attribute_unique_id
    QuoteLinesquote_line_unique_id
    ReturnLinesreturn_line_unique_id

    Other columns may be present, e.g. when your export writes the full row; Plato ignores them.

  2. Part of a regular delivery. Upload delete files to data/{tenant}/delete/{EntityName}/{version}, before the delivery's success file (see Signalling Delivery Completion).

  3. The latest entry wins. For each record, Plato applies whichever of reconcile, update and delete arrived last. A deleted record is marked as deleted in Plato and keeps its last delivered values. If a later update or reconcile carries it again, it is live again.

  4. A delete for a record Plato never received changes nothing.

Example paths ​

Each block below is one delivery, and each line one upload. The Push API adds the file name.

A reconcile snapshot of Customers, split into two files, then the success file:

data/acme/reconcile/Customers/2/2026-09-29_7f3c9a12   # upload 1: part 1 of the snapshot
data/acme/reconcile/Customers/2/2026-09-29_7f3c9a12   # upload 2: part 2 of the snapshot
data/success                                          # upload 3: success file, after the last part

An update with the invoice lines changed since the last delivery, then the success file:

data/acme/update/InvoiceLines/2   # upload 1: the changed invoice lines
data/success                       # upload 2: success file

An explicit deletion of order lines, then the success file:

data/acme/delete/OrderLines/2   # upload 1: the deleted order lines
data/success                     # upload 2: success file

One export session for two tenants, acme and acme_nord, with several operations, then one success file for all of it:

data/acme/reconcile/Customers/2/2026-09-29_7f3c9a12        # upload 1: acme, Customers snapshot
data/acme/update/InvoiceLines/2                            # upload 2: acme, changed invoice lines
data/acme/delete/OrderLines/2                              # upload 3: acme, deleted order lines
data/acme_nord/reconcile/Customers/2/2026-09-29_4b81e0d5   # upload 4: acme_nord, snapshot part 1
data/acme_nord/reconcile/Customers/2/2026-09-29_4b81e0d5   # upload 5: acme_nord, snapshot part 2
data/success                                               # upload 6: one success file, after uploads 1-5 have finished

Signalling Delivery Completion ​

Uploading data files does not start processing. At the end of each delivery (one export session, see Data Delivery), upload one success file to this path:

data/success

The path is always exactly data/success, in lower case, whichever tenants, entities and operations the delivery contains.

Rules:

  1. Exactly one success file per delivery. Not one per tenant, entity, export job or operation: one for the whole export session.
  2. Upload it only after every other upload of the delivery has finished, i.e. the Push API has answered 200 OK for each one. Never upload it while any upload of the delivery is still running. If it arrives earlier, Plato processes an incomplete delivery; in a reconcile snapshot, the records that have not arrived yet are treated as deleted.
  3. Contents are ignored. Any file works; Plato only reacts to its arrival.

Each success file starts one processing run, which processes the whole delivery.

Delivering Entities and Columns ​

Plato offers a broad set of features, and each entity and column in this contract feeds some of them. The description of every entity and column says what Plato uses it for, so you can see what your users gain from each piece of data. For CRM data supported by Plato, see https://api.platoapp.ai/docs.

TIP

We strongly recommend delivering the full extent of the PCT model, so that all Plato features are available to your users.

  • Entities: deliver the entities your ERP has. Tell Plato during onboarding which entities you will not deliver, so the pipeline does not wait for their files.
  • Columns: if you deliver an entity, every column listed for it must be in the header row, even if it is empty in every row. A missing column is a delivery error.
  • Values: a column may be empty where your ERP has no value for it. The amount and margin columns of document lines are the exception: they are required in every row (see Amounts and Margins).

Example: your ERP has no barcodes. The ProductVariants file still has the ean and gtin columns in its header row, with empty values.

Amounts and Margins ​

Every document line entity (e.g. OrderLines, InvoiceLines) carries four amount columns. They are the only amounts Plato calculates with: revenue, the order sum and margins, per line and summed per document, all come from these four.

ColumnWhat it is
total_amount_before_header_discountNet line total before the header discount.
total_amount_after_header_discountNet line total after the header discount.
gross_margin_before_header_discountGross margin of the line before the header discount.
gross_margin_after_header_discountGross margin of the line after the header discount.
  1. Plato takes these values as delivered. It converts them into your base currency with currency_rate_to_base and adds them up, but never recalculates them. The price, discount and cost columns (retail_price, line_discount_percentage, line_discount_amount, header_discount_percentage, line_delivery_costs, header_other_costs and the like) are information only: Plato stores them, and calculates no amount or margin from them. Deliver each line's totals and margins exactly as your ERP calculates them.
  2. All four are required in every row. Plato reports figures both before and after the header discount, so it needs both. If your ERP has no header discount, or knows only one of the two values, deliver that same value in the before and the after column.
  3. The sign depends on the entity. Each column's description says whether to deliver it as a positive or a negative amount.

Example: an invoice line with a net total of 100.00 and a gross margin of 30.00, from an ERP that has no header discount:

total_amount_before_header_discounttotal_amount_after_header_discountgross_margin_before_header_discountgross_margin_after_header_discount
100.00100.0030.0030.00

Identifiers ​

Most entities carry three identifier columns (link tables such as CustomerToSalesReps carry only unique_id):

ColumnWhat it isUsed by Plato for
unique_idThe key of the record.Recognising the same record in every delivery, and linking records between entities (e.g. an invoice line to its customer).
display_idThe number your users know, e.g. the customer number.Displaying and searching the record in the Plato app.
resource_idThe id your ERP needs to find the record again.Writing back to your ERP (e.g. creating orders).

If your system uses one number for all three purposes, simply repeat the unique_id value in display_id and resource_id. Use different values only where your system needs it, e.g. when your ERP writes back via an internal id that users never see.

Rules for unique_id ​

  1. Unique within its entity. No two customers share a unique_id, no two invoice lines share one. A customer and an invoice line may have the same value. Categories are the one exception: their unique_id only needs to be unique within its category tree (hierarchy_name).
  2. Stable. A record keeps the same unique_id in every delivery. Never re-number it or derive it from the row position or the export run. If it changes, Plato sees a deleted record and a new one, and the history and links of the old one are lost.
  3. References use it. A column ending in _unique_id (e.g. customer_unique_id on an invoice line) points to another record and must contain exactly that record's unique_id, as delivered in its own file. A reference that matches no record leaves the link missing in Plato.

Transaction lines ​

Transaction entities (OrderLines, InvoiceLines, ...) have one row per document line and carry the identifiers twice: for the document (e.g. invoice_unique_id) and for the line (e.g. invoice_line_unique_id).

  • The same applies to their display and resource ids: repeat the unique id if your system has no separate value.
  • The document id is the same on every line of the document.
  • The line id is unique across all lines, not just within one document. Line number 10 exists on almost every invoice, so combine it with the document number, e.g. RE-2026-00017-10.

Example ​

Customers

unique_iddisplay_idresource_idname_1
100421004210042Acme GmbH

InvoiceLines

invoice_unique_idinvoice_line_unique_idinvoice_line_display_idcustomer_unique_id
RE-2026-00017RE-2026-00017-101010042

The customer's number 10042 is repeated in all three identifier columns, and customer_unique_id is 10042 because that is the customer's unique_id. If your ERP used a separate internal key for write-back, e.g. 981, only the customer's resource_id would be 981; unique_id and customer_unique_id would stay 10042.

Multi-Tenancy ​

unique_id is unique per tenant, with one important implication:

IMPORTANT

Within a tenant, master data is single-valued. No entity may have two active rows for the same identity. If values diverge inside your chosen tenant cut, the tenant is too coarse — the data provider needs to split finer.

Entity Timestamps ​

Every entity has created_at and updated_at columns (see General Requirements for format). They are metadata: Plato stores them but does not use them to process your data.

ColumnDescription
created_atTimestamp when the record was created in the source system.
updated_atTimestamp when the record was last modified in the source system.

Delivery cadence ​

Every delivery starts one processing run (see Signalling Delivery Completion), so how often you deliver matters more than how much you deliver. Deliver each entity group at this cadence:

Entity groupDelta (update and delete)Full export (reconcile)
Master data: customers, customer entities, contacts, assignments, reference data, productsOnce a dayOn demand once deletes are delivered in the delta; weekly until then
Transactional data: open documents (quote and order lines), posted documents (invoice and credit memo lines), and the header and line relationsEvery 30 or 60 minutes, during working hours only. The interval is configurable per installation.On demand once deletes are delivered in the delta; weekly until then
  1. Deltas carry only new and changed records. Records that have not changed since the last delivery are not sent again.
  2. Deletes are part of the delta. Send deleted records with the delete operation (see Delete files). Once you do, Plato no longer needs regular full exports to detect deletions: it asks for a reconcile only when one is needed. Until then, send a full export once a week. Never send a full export every day.
  3. No deliveries outside business hours or at weekends, unless data has changed in that time.
  4. Exceptions are agreed per installation with Plato, e.g. up to three delta deliveries at the weekend for a company that asked for weekend updates.

A freshness warning is raised after 1 day without new data; an error after 2 days.

Customer Model ​

The PCT data model distinguishes between Customers and CustomerEntities:

  • Customers: The main business entity representing a customer account.
  • CustomerEntities: Addressable units associated with a customer -- for example, a warehouse (ship-to), a billing department (invoice-to), or a purchasing office (sell-to).
  • CustomerEntityRoleAssignments: Links a customer to its entities with a specific role (SELL_TO, SHIP_TO, INVOICE_TO).

This distinction is important when a customer has different addresses for ordering, invoicing, and delivery. Sales document lines reference customer entities via sell_to_unique_id, ship_to_unique_id, and invoice_to_unique_id.

Record Status Values ​

Most entities carry a status column. The allowed values and their meaning in Plato:

StatusMeaning
NORMALDefault. The record is fully visible and usable in Plato.
BLOCKEDThe record is visible in the Plato app, but excluded from writebacks and AI recommendations.
HIDDENThe record is not visible in the Plato app.

Records delivered without a status are treated as NORMAL.

ProductVariants only: the product status additionally allows EXPIRED_EXTERNALLY (the manufacturer no longer produces the item; remaining stock can still be sold), IN_PREPARATION (the product is being added; not yet in stock, but it can already be sold) and EXPIRED_INTERNALLY (the item is no longer purchased or replenished; remaining stock can still be sold). Note that the Plato app currently treats blocked and hidden product variants the same way: blocked products are hidden from the app.

Plato Status ​

The plato_line_status field drives automatic calculation of header-level document status in Plato.

Quote Status ​

Line-level values: OPEN, RECEIVED, PARTIALLY_RECEIVED, LOST, CANCELLED, OTHER

Header status calculation (evaluated top to bottom, first match wins; cancelled items are excluded from evaluation unless all are cancelled; only RECEIVED items count as received):

Header StatusEN DisplayDE DisplayCondition
CANCELLEDCancelledStorniertAll items cancelled
RECEIVEDReceivedErhaltenAll items received
PARTIALLY_RECEIVEDPartially ReceivedTeilw. ErhaltenAt least 1 item received, not all
LOSTLostVerlorenAll items lost
OPENOpenOffenAll other cases

Alternative lines (QuoteLines.alternative_to_line): a quote line whose alternative_to_line is set is an alternative to that base line, and at most one line of such a set is delivered. So:

  • Alternative lines are left out of the quote's header totals (amount, margin, quantity, line count).
  • In the header status, a base line and its alternatives count as one set. If any line of the set is RECEIVED, the set counts once, as a received item. Otherwise every line of the set counts with its own status.

Order Status ​

Line-level values: OPEN, CANCELLED, BILLED, PARTIALLY_BILLED, SHIPPED, PARTIALLY_SHIPPED, PICKED, PARTIALLY_PICKED, OTHER

Header status calculation (evaluated top to bottom, first match wins; cancelled items are excluded from evaluation unless all are cancelled):

Header StatusEN DisplayDE DisplayCondition
CANCELLEDCancelledStorniertAll items cancelled
BILLEDFully billedFakturiertAll items billed
PARTIALLY_BILLEDPartially billedTeilweise fakturiertAt least 1 item billed, not all
SHIPPEDFully deliveredGeliefertAll items delivered
PARTIALLY_SHIPPEDPartially deliveredTeilweise geliefertAt least 1 item delivered, not all
PICKEDFully pickedKommissioniertAll items picked
PARTIALLY_PICKEDPartially pickedTeilweise kommissioniertAt least 1 item picked, not all
OPENOpenOffenNo items picked
OTHEROtherAnderesCatch-all
UNKNOWNUnknownUnbekanntMissing or inconsistent data from ERP

Entity Relationships ​

The diagram below shows how entities reference each other via foreign key columns.

Customers
  |-- CustomerContacts (via customer_unique_id)
  |-- CustomerEntities (via CustomerEntityRoleAssignments.customer_unique_id)
  |-- CustomerToSalesReps (via customer_unique_id) --> SalesReps
  |
  |-- OrderLines (via customer_unique_id)
  |-- InvoiceLines (via customer_unique_id)
  |-- QuoteLines (via customer_unique_id)
  |-- CreditMemoLines (via customer_unique_id)

ProductVariants
  |-- Brands (via brand_unique_id)
  |-- Manufacturers (via manufacturer_unique_id)
  |-- ProductsToCategories (via product_variant_unique_id) --> Categories
  |-- ProductVariantToSuppliers (via product_variant_unique_id) --> Suppliers
  |-- ProductVariantAttributeValues (via product_variant_unique_id)
  |-- ProductVariantRelations (via product_variant_unique_id)
  |-- ProductVariantGrouping --> ProductVariantGroupAttributeValues
  |-- ProductVariantToProductVariantGroupings (via product_variant_unique_id) --> ProductVariantGrouping

Categories
  |-- CategoriesToCategories (parent/child hierarchy)

Transaction lines (OrderLines, InvoiceLines, QuoteLines, CreditMemoLines) share:
  |-- customer_unique_id --> Customers
  |-- sell_to_unique_id / ship_to_unique_id / invoice_to_unique_id --> CustomerEntities
  |-- product_unique_id --> ProductVariants
  |-- clerk_unique_id --> Clerks
  |-- currency_unique_id --> Currencies
  |-- supplier_unique_id --> Suppliers
  |-- storage_location_unique_id --> StorageLocations
  |-- header_document_type_unique_id --> SalesDocumentTypes
  |-- customer_contact_unique_id --> CustomerContacts

SalesDocumentHeaderRelations / SalesDocumentLineRelations
  Link documents across types (e.g. Quote -> Order -> Invoice)

Table of Contents ​

Master Data (41 entities) ​

Reference data that defines business entities and their relationships.

Transaction Data (10 entities) ​

Transactional data representing business events (orders, invoices, quotes, credit memos).


Master Data Entities ​

Brands ​

Brand master data. Plato uses brands to identify brand-loyal customers, which improves the accuracy of Plato's recommendations.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameBrand name. Plato AI uses it to identify brand-loyal customers.
descriptionBrand description. Plato uses it to assess which brands are similar.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Categories ​

Category master data. Plato uses categories to build hierarchies of product variants for category-based recommendations. With hierarchy_name you can deliver several category trees, e.g. your ERP product groups (Warengruppen) or your web-shop categories.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
hierarchy_nameName of the category tree this category belongs to, e.g. your ERP product groups (Warengruppen) or your web-shop categories. A category's unique_id only needs to be unique within its tree. Lets Plato keep several category trees apart.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
category_nameName of the category, e.g. Power tools. Plato AI uses it for category-based recommendations.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CategoriesToCategories ​

Links each category to its parent category. Plato uses these links to build the category hierarchy for category-based recommendations. Deliver one link per parent-child pair, for each category tree (hierarchy_name).

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
hierarchy_nameName of the category tree this link belongs to. Parent and child must be in the same tree.
parent_category_unique_idReference to the parent category in the hierarchy. Must equal the referenced record's unique_id; see Identifiers. Plato places the child category under this category in the category tree.
child_category_unique_idReference to the child category in the hierarchy. Must equal the referenced record's unique_id; see Identifiers. The category that Plato places under the parent.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Clerks ​

The people in your company who create or change sales documents in the ERP (Erfasser), e.g. inside-sales staff. Plato uses them to tell who created each quote and order and to compare the sales handled by each clerk.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
salutationSalutation, e.g. Herr or Frau. Academic titles such as Dr. go into title.
first_nameFirst name of the clerk. Together with last_name it forms the clerk's full name in Plato.
last_nameLast name of the clerk. Together with first_name it forms the clerk's full name in Plato.
emailEmail address of the clerk.
telephone_numberTelephone number of the clerk.
job_titleJob title or function of the clerk.
departmentDepartment or organisational unit of the clerk.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
titleAcademic or honorary title, e.g. Dr. or Prof.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ClerkToCommercialScopes ​

Assigns your clerks (Erfasser) to the commercial scopes they work in, e.g. their branch (Niederlassung) or sales area. A clerk can belong to several scopes, and a scope has several clerks. Plato uses these assignments to compare the sales handled by each clerk by branch or sales area in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
clerk_unique_idReference to the clerk (Clerks.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the clerk that belongs to the scope.
commercial_scope_unique_idReference to the commercial scope (CommercialScopes.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the scope the clerk is assigned to.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

CommercialScopes ​

The ways your company classifies its customers and divides its market: industries (Branchen), sales areas (Vertriebsgebiete), ABC classes and your own branches (Niederlassungen). Customers are assigned to them via CustomerToCommercialScopes. Plato uses them to segment customers by industry, sales area, ABC class or branch in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the scope, e.g. Metallbau or Vertriebsgebiet Nord. If your ERP has only a code for it, repeat the code.
typeScope type. Allowed values: INDUSTRY (the industry the customer operates in, Branche), SALES_AREA (the sales area it is served through, Vertriebsgebiet), ABC_CLASS (its ABC classification, usually A, B or C) and BRANCH (your branch that owns the customer relationship, Niederlassung). Tells Plato what kind of scope this is.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CommercialScopeToCommercialScopes ​

Links each commercial scope to the scope it belongs to, e.g. a branch (Niederlassung) to its region, or a sales area (Vertriebsgebiet) to a larger sales area. Deliver one link per child-parent pair; a scope can have several parents. Plato uses these links to nest your scopes into a hierarchy, so customers, sales reps and clerks can be segmented on every level of it.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
commercial_scope_unique_idReference to the child commercial scope (CommercialScopes.unique_id). Must equal the referenced record's unique_id; see Identifiers. The scope that Plato places under the parent.
parent_commercial_scope_unique_idReference to the parent commercial scope (CommercialScopes.unique_id). Must equal the referenced record's unique_id; see Identifiers. Plato places the child scope under this scope in the hierarchy.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

Currencies ​

The currencies your sales documents are in, including which one is your company's base currency. Plato uses them to know the currency of each amount and to convert all amounts into your base currency, so figures from documents in different currencies can be compared.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
currency_idYour ERP's code for the currency.
currency_iso_codeISO 4217 currency code (e.g. EUR, USD).
display_nameName of the currency, e.g. Euro.
symbolCurrency symbol, e.g. € or $.
is_base_currencyWhether this is your base currency, i.e. your default currency. Plato uses the base currency for all monetary values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerContacts ​

The contact persons at your customers, e.g. buyers or purchasing managers. Plato links each sales document to its contact person, so your sales reps know whom to talk to at each customer.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the contact person to its customer.
salutationSalutation, e.g. Herr or Frau. Academic titles such as Dr. go into title.
first_nameFirst name of the contact person. Together with last_name it forms the contact's full name in Plato.
last_nameLast name of the contact person. Together with first_name it forms the contact's full name in Plato.
telephone_numberPrimary telephone number.
emailEmail address.
fax_numberFax number.
job_titleJob title or function.
departmentDepartment or organisational unit.
mobile_numberMobile phone number.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
titleAcademic or honorary title, e.g. Dr. or Prof.
birthdayContact birthday (date-only). Contains personal data (PII).
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerEntities ​

The addresses and locations of your customers that orders, deliveries and invoices go to, e.g. a purchasing office (sell-to, Auftraggeber), a warehouse (ship-to, Warenempfänger) or a billing department (invoice-to, Rechnungsempfänger). Link each one to its customer and role via CustomerEntityRoleAssignments; see Customer Model. Plato uses them to know where each order is ordered from, delivered to and invoiced to.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
name_1First name line of the address, typically the company name.
name_2Second name line, e.g. a name addition or a department.
name_3Third name line.
legal_entity_nameLegal entity or company name.
telephone_numberPrimary telephone number.
emailEmail address.
mobile_numberMobile phone number.
fax_numberFax number.
address_line_1Street and house number.
address_line_2Second address line, e.g. floor or apartment.
address_line_3Third address line, e.g. c/o or a building name.
state_or_provinceState or province.
zip_codePostal / zip code.
cityCity name.
country_codeISO 3166-1 alpha-2 country code, e.g. DE, AT or CH. Plato identifies the country by this code.
countryName of the country, e.g. Deutschland. The country itself is identified by country_code.
post_boxPost office box number.
zip_code_post_boxPostal code for the post office box.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
is_parcel_delivery_possibleWhether this ship-to address can receive parcel deliveries. Boolean.
is_late_delivery_possibleWhether this ship-to address allows late delivery. Boolean.
delivery_address_commentFree-text note on the ship-to / delivery address.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerEntityRoleAssignments ​

Assigns each customer address (CustomerEntity) to its customer and says which role it plays there: SELL_TO (Auftraggeber), SHIP_TO (Warenempfänger) or INVOICE_TO (Rechnungsempfänger). One address can have several roles. Plato links an address to a customer only through these assignments, so deliver one assignment per customer, address and role; see Customer Model.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the address to its customer.
customer_entity_unique_idReference to the customer entity (operational counterparty). Must equal the referenced record's unique_id; see Identifiers. Gives the customer its address for this role.
role_typeRole the address plays for this customer: SELL_TO (Auftraggeber), SHIP_TO (Warenempfänger) or INVOICE_TO (Rechnungsempfänger).
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerGroups ​

Groups your customers belong to beyond your sales organisation, e.g. a purchasing association or buying group (Einkaufsverband), a corporate group, a sales channel or platform, or a logistics surcharge group. Customers are assigned via CustomerToCustomerGroups, and a customer can belong to several groups. Plato uses them to segment customers by these groups in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the customer group, e.g. the name of the purchasing association.
typeKind of group: ORGANISATION_CLUSTER (e.g. a corporate group), ACCOUNT_AFFILIATION (e.g. a purchasing association or buying group), CHANNEL_OR_PLATFORM (a sales channel or platform), LOGISTICS_SURCHARGE (a logistics surcharge group) or UNKNOWN.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerGroupsToCustomerGroups ​

Links each customer group to the group it belongs to, e.g. a regional buying group to its national purchasing association (Einkaufsverband), or a subsidiary to its corporate group. Deliver one link per child-parent pair; a group can have several parents. Plato uses these links to nest your customer groups into a hierarchy, so customers can be segmented on every level of it.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
customer_group_unique_idReference to the child customer group (CustomerGroups.unique_id). Must equal the referenced record's unique_id; see Identifiers. The group that Plato places under the parent.
parent_customer_group_unique_idReference to the parent customer group (CustomerGroups.unique_id). Must equal the referenced record's unique_id; see Identifiers. Plato places the child group under this group in the hierarchy.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

Customers ​

Your customer accounts: the companies you sell to. The customer is at the centre of Plato: all quotes, orders, invoices and revenue are tied to a customer, and Plato AI uses each customer's purchase history for recommendations. Addresses such as ship-to and invoice-to are delivered separately as CustomerEntities; see Customer Model.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
name_1First name line of the address, typically the company name.
name_2Second name line, e.g. a name addition or a department.
legal_entity_nameLegal entity or company name.
telephone_numberPrimary telephone number.
emailEmail address.
mobile_numberMobile phone number.
fax_numberFax number.
address_line_1Street and house number.
address_line_2Second address line, e.g. floor or apartment.
address_line_3Third address line, e.g. c/o or a building name.
state_or_provinceState or province.
zip_codePostal / zip code.
cityCity name.
country_codeISO 3166-1 alpha-2 country code, e.g. DE, AT or CH. Plato identifies the country by this code.
countryName of the country, e.g. Deutschland. The country itself is identified by country_code.
post_boxPost office box number.
zip_code_post_boxPostal code for the post office box.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
first_order_dateDate the customer placed their first order in the source system.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerToCommercialScopes ​

Assigns your customers to the commercial scopes they belong to, e.g. their industry, sales area, ABC class or branch. A customer can belong to several scopes. Plato uses these assignments to segment customers by industry, sales area, ABC class or branch in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
customer_unique_idReference to the customer (Customers.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the customer that belongs to the scope.
commercial_scope_unique_idReference to the commercial scope (CommercialScopes.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the scope the customer is assigned to.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerToCustomerGroups ​

Assigns your customers to the customer groups they belong to, e.g. their purchasing association or corporate group. A customer can belong to several groups. Plato uses these assignments to segment customers by these groups in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
customer_unique_idReference to the customer (Customers.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the customer that belongs to the group.
customer_group_unique_idReference to the customer group (CustomerGroups.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the group the customer is assigned to.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

CustomerToSalesReps ​

Assigns your customers to the sales reps responsible for them, as inside rep (Innendienst) or outside rep (Außendienst). A customer can have several reps. Plato uses the assignments to give each rep a view of their own customers. A sales rep's revenue in Plato is the revenue of the customers assigned to them. When Plato is set up so that reps see only their own customers, these assignments decide which customers each rep sees.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Identifies the customer the sales rep is assigned to.
sales_rep_unique_idReference to the sales representative. Must equal the referenced record's unique_id; see Identifiers. Identifies the sales rep the customer is assigned to.
sales_rep_roleRole of the rep for this customer: INSIDE_REP (Innendienst) or OUTSIDE_REP (Außendienst).
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

EntityAttributeValues ​

Extends any of the existing Plato entities with fields this contract does not have yet, e.g. an attribute your ERP keeps on customers or products. Each row names the entity it extends (entity_type), the attribute (plato_attribute_key) and its value. Notify Plato before you deliver an extension, so it can be agreed and put to use.

ColumnDescription
entity_typeThe entity the attribute extends, e.g. PRODUCT_VARIANT or CUSTOMER.
plato_attribute_keyName of the attribute, as agreed with Plato.
valueValue of the attribute.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Manufacturers ​

The manufacturers of the products you sell. Link each product to its manufacturer via manufacturer_unique_id on ProductVariants. Plato uses them to analyse sales per manufacturer.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
name_1First name line of the address, typically the company name.
name_2Second name line, e.g. a name addition or a department.
name_3Third name line.
legal_entity_nameLegal entity or company name.
telephone_numberPrimary telephone number.
emailEmail address.
mobile_numberMobile phone number.
fax_numberFax number.
address_line_1Street and house number.
address_line_2Second address line, e.g. floor or apartment.
address_line_3Third address line, e.g. c/o or a building name.
state_or_provinceState or province.
zip_codePostal / zip code.
cityCity name.
country_codeISO 3166-1 alpha-2 country code, e.g. DE, AT or CH. Plato identifies the country by this code.
countryName of the country, e.g. Deutschland. The country itself is identified by country_code.
post_boxPost office box number.
zip_code_post_boxPostal code for the post office box.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

PartsListLines ​

The parts lists (Stücklisten) of your products that matter for sales: one row per component, saying which product the list belongs to, which product is the component and how many of it one header item contains. Plato uses them to know which product variants are only sold as part of a parts list, which improves its sales recommendations.

ColumnDescription
product_variant_component_unique_idReference to the component product variant (ProductVariants.unique_id). Must equal the referenced record's unique_id; see Identifiers.
product_variant_component_display_idThe component's display_id, exactly as delivered in ProductVariants.
product_variant_component_resource_idThe component's resource_id, exactly as delivered in ProductVariants.
product_variant_header_unique_idReference to the product variant that is the parts-list header (ProductVariants.unique_id). Must equal the referenced record's unique_id; see Identifiers.
part_list_typeWhether the parts list can be edited: EDITABLE or NON_EDITABLE. Plato needs it when it writes orders back to your ERP. Not the same as parts_list_type on ProductVariants, which carries your ERP's parts-list type.
positionPosition of the component within the parts list. Lets Plato list the records in the same order as your ERP.
ratio_to_header_quantityComponent quantity per one header item, for example 2.0.
component_unit_salesQuantity unit of measurement of the component, for example ST.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

ProductsToCategories ​

Assigns your product variants to their categories. A product can be in several categories, e.g. one per category tree (hierarchy_name). Plato uses these assignments to place each product in the category hierarchy for category-based recommendations.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
hierarchy_nameName of the category tree of the referenced category, exactly as delivered in Categories. Together with category_unique_id it identifies the category.
product_variant_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Places the product variant in the category.
category_unique_idReference to the category. Must equal the referenced record's unique_id; see Identifiers. Together with hierarchy_name it identifies the category.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantAndProductVariantGroupAttributes ​

The product attributes you use, e.g. length, colour or voltage, optionally following a classification standard such as ETIM. Plato uses these definitions to name and interpret the attribute values of your products and product groups.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
attribute_nameTechnical name of the attribute, e.g. LENGTH.
attribute_display_nameName of the attribute as your users know it, e.g. Länge.
attribute_descriptionDescription of the attribute.
attribute_data_typeData type of the attribute value (e.g. string, integer, boolean).
namespaceNamespace or standard for the attribute (e.g. ETIM). Tells Plato which standard the attribute follows.
namespace_keyKey within the namespace (e.g. EF123456 for ETIM).
metadataAdditional structured details as JSON.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantAttributeValues ​

The attribute values of each product variant, e.g. length 2 m or colour red. Plato uses them to assess which product variants are the same product or similar products.

ColumnDescription
product_variant_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Together with product_attribute_unique_id it identifies the record.
product_attribute_unique_idReference to the product attribute definition. Must equal the referenced record's unique_id; see Identifiers. Together with product_variant_unique_id it identifies the record.
attribute_valueValue of the attribute, e.g. 2 or red, delivered as text. How Plato reads it is set by attribute_data_type in the attribute definition.
metadataAdditional structured details as JSON.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantGroupAttributeValues ​

The attribute values that apply to a whole product variant group, e.g. the material shared by all sizes of one article. Plato uses them, together with the variant values, to assess which product variants are the same product or similar products.

ColumnDescription
product_variant_group_unique_idReference to the product variant group. Must equal the referenced record's unique_id; see Identifiers. Together with product_attribute_unique_id it identifies the record.
product_attribute_unique_idReference to the product attribute definition. Must equal the referenced record's unique_id; see Identifiers. Together with product_variant_group_unique_id it identifies the record.
attribute_valueValue of the attribute, e.g. 2 or red, delivered as text. How Plato reads it is set by attribute_data_type in the attribute definition.
metadataAdditional structured details as JSON.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantGrouping ​

Products that come in several variants, e.g. a T-shirt available in several sizes and colours, or a cable in several lengths. The grouping is the product; its variants are the ProductVariants assigned to it via ProductVariantToProductVariantGroupings. Plato uses it to treat the variants of one product together, e.g. to recommend the product rather than one specific variant.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the product, e.g. T-Shirt Basic. Plato AI uses it as product text.
description_shortShort product description. Used by Plato AI to find similar products.
description_longLong / detailed product description. Used by Plato AI to find similar products.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantRelations ​

How your products relate to each other: a product's accessories (ACCESSORY), the product that replaces it (REPLACEMENT), and its successor or predecessor (SUCCESSOR, PREDECESSOR). Plato uses these relations for its sales recommendations.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
product_variant_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. The article the relation starts from.
related_product_variant_unique_idReference to the related product variant. Must equal the referenced record's unique_id; see Identifiers. The related article.
relation_typeType of relationship between product variants. Allowed values: REPLACEMENT, SUCCESSOR, PREDECESSOR, ACCESSORY. Tells Plato whether the related article is a replacement, successor, predecessor or accessory.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariants ​

The items you sell: one row per article, e.g. each size or colour of a T-shirt. These are the products Plato recommends to your customers. Sales document lines reference them, so Plato knows what each customer bought. Plato also uses their units and packaging when it writes orders back to your ERP. Group variants of the same product via ProductVariantGrouping.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the product variant, e.g. T-Shirt Basic blue M. Plato AI uses it to identify the product.
descriptionProduct description text. Used by Plato AI as product text, in particular when no product groups are delivered.
description_longLong / detailed product description. Used by Plato AI to find similar products.
retail_priceNet retail / list price of the product variant, per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes orders back to your ERP. Plato AI also uses it for quote recommendations.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes orders back to your ERP. Plato AI also uses it for quote recommendations.
unit_storageStorage unit of measure. Used when Plato writes orders back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Defaults to 1 if not provided. Used when Plato writes orders back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Defaults to 1 if not provided. Used when Plato writes orders back to your ERP. Plato AI also uses it for quote recommendations.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes orders back to your ERP.
package_can_be_brokenWhether a package can be split into individual sales units. Used when Plato writes orders back to your ERP.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, EXPIRED_EXTERNALLY, IN_PREPARATION, EXPIRED_INTERNALLY, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values. The product-only values are explained there.
manufacturer_unique_idReference to the manufacturer. Must equal the referenced record's unique_id; see Identifiers. Links the article to its manufacturer for Plato's product analytics.
manufacturer_product_variant_idManufacturer's own product identifier / article number.
brand_unique_idReference to the brand. Must equal the referenced record's unique_id; see Identifiers. Plato AI uses the brand to identify brand-loyal customers.
web_shop_urlURL to the product in the web shop.
product_image_urlURL to the product image (must be web-accessible).
gtinGlobal Trade Item Number (barcode). Plato AI uses it to identify the product and similar variants. If a product has no GTIN, Plato falls back to the EAN of its main supplier (ProductVariantToSuppliers).
partial_packing_typePartial packing type. Used when Plato writes orders back to your ERP. Plato AI also uses it for quote recommendations.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes orders back to your ERP.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing orders back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing orders back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing orders back to your ERP.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantToProductVariantGroupings ​

Assigns your product variants to the product they belong to (ProductVariantGrouping), e.g. each size of a T-shirt to the T-shirt. A variant can belong to several groupings, and a grouping has several variants. Plato uses these assignments to treat the variants of one product together, e.g. to recommend the product rather than one specific variant.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID of the assignment in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
product_variant_unique_idReference to the product variant (ProductVariants.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the article that belongs to the grouping.
product_variant_grouping_unique_idReference to the product variant grouping (ProductVariantGrouping.unique_id). Must equal the referenced record's unique_id; see Identifiers. Plato groups the article under this product.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

ProductVariantToSuppliers ​

Which suppliers you buy each product from. A product can have several suppliers; mark the main one with is_main_supplier. Plato uses these assignments to provide supplier analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
product_variant_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Identifies the article the supplier assignment belongs to.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Identifies the supplier you buy the product from.
supplier_product_variant_idSupplier's own article number for the product.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants. If the product has no GTIN, Plato uses the EAN of its main supplier.
is_main_supplierWhether this is the main supplier of the product. Mark at most one supplier per product. Plato uses the main supplier when it writes orders back to your ERP.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantToUnits ​

Which units each product variant uses, by type (unit_type): sales, storage and packaging units. A product variant can have several units of one type, e.g. sand sold in grams and in kilograms. Plato uses them to aggregate order amounts correctly in its analytics and to write orders back to your ERP in the right unit.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
product_variant_unique_idReference to the product variant (ProductVariants.unique_id). Must equal the referenced record's unique_id; see Identifiers.
unit_unique_idReference to the unit (Units.unique_id). Must equal the referenced record's unique_id; see Identifiers.
unit_typeHow the product variant uses this unit: SALES, STORAGE or PACKAGING.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

ProductVariantUnitConversion ​

Conversion factors between units for a single product variant, e.g. 1 box of this product = 12 pieces, given as numerator and denominator. Plato uses them in the same way as UnitConversion, for conversions that depend on the product.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
product_variant_unique_idReference to the product variant (ProductVariants.unique_id). Must equal the referenced record's unique_id; see Identifiers.
from_unit_unique_idReference to the source unit (Units.unique_id). Must equal the referenced record's unique_id; see Identifiers.
to_unit_unique_idReference to the target unit (Units.unique_id). Must equal the referenced record's unique_id; see Identifiers.
numeratorOne from-unit equals numerator / denominator to-units, e.g. 1 box = 12 pieces gives numerator 12 and denominator 1.
denominatorOne from-unit equals numerator / denominator to-units, e.g. 1 box = 12 pieces gives numerator 12 and denominator 1.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Projects ​

The projects your sales are tied to, e.g. construction projects or public tenders, with their dates, tender deadlines and responsible clerk. Sales document lines reference them via project_unique_id. Plato uses them to understand your customers' order behaviour: it can tell when a higher volume of quotes and orders comes from a project or tender rather than from regular demand. Projects are also the basis for supporting quote creation for tenders.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameProject name.
descriptionProject description.
estimate_costEstimated project cost.
estimation_currencyCurrency of estimate_cost.
external_idProject identifier at the project owner.
external_statusProject status from the point of view of the project owner.
project_start_dateProject start date.
project_end_dateProject end date.
tender_start_dateTender start date.
tender_end_dateTender end date.
award_dateDate the project was awarded.
submission_deadline_dateSubmission deadline.
resubmission_dateResubmission date.
tendererThe project owner who issued the tender.
clerk_unique_idReference to the clerk who created the project (Clerks.unique_id). Must equal the referenced record's unique_id; see Identifiers.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

SalesDocumentTypes ​

The sales document types you use, e.g. order, quote, return or express order. You can deliver any document types, as long as each one is mapped to one Plato document family in sales_document_type_family: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST or DEBIT_MEMO_REQUEST. The family tells Plato how to treat each document, e.g. whether it counts towards the order sum (Auftragseingang) or billed revenue.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
sales_document_type_familyPlato document family. Allowed values: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST, DEBIT_MEMO_REQUEST. Tells Plato which kind of document the type is.
nameName of the document type, e.g. Expressauftrag.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

SalesReps ​

The sales representatives of your company, inside and outside reps (Innendienst and Außendienst). Assign them to customers via CustomerToSalesReps. Each Plato user can be linked to their sales rep, so they see their own customers; Plato also reports sales per rep, based on the customers assigned to them.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
salutationSalutation, e.g. Herr or Frau. Academic titles such as Dr. go into title.
first_nameFirst name of the sales rep. Together with last_name it forms the rep's full name in Plato.
last_nameLast name of the sales rep. Together with first_name it forms the rep's full name in Plato.
emailEmail address.
telephone_numberPrimary telephone number.
job_titleJob title or function.
departmentDepartment or organisational unit.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
titleAcademic or honorary title, e.g. Dr. or Prof.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

SalesRepToCommercialScopes ​

Assigns your sales representatives to the commercial scopes they are responsible for, e.g. their sales area (Vertriebsgebiet), industry (Branche) or branch (Niederlassung). A sales rep can belong to several scopes, and a scope has several sales reps. Plato uses these assignments to segment the sales per rep by sales area, industry or branch in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
sales_rep_unique_idReference to the sales representative (SalesReps.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the sales rep that belongs to the scope.
commercial_scope_unique_idReference to the commercial scope (CommercialScopes.unique_id). Must equal the referenced record's unique_id; see Identifiers. Identifies the scope the sales rep is assigned to.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

ShippingTypes ​

How a document is shipped, e.g. DHL Paket, Spedition or Abholung, with the carrier that ships it. Optional: send it when your ERP knows shipping types. Reference it from the document lines via shipping_type_unique_id. Plato shows the shipping type and the carrier on quotes and orders.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the shipping type as your users know it, e.g. DHL Paket or Abholung. Shown as the shipping type of a quote or order.
descriptionLonger description of the shipping type, if your ERP has one.
dispatcherThe carrier that ships it, e.g. DHL, GLS or UPS. Empty when there is none, e.g. for pick-up. Shown as the carrier of a quote or order.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

StorageGroups ​

Groups of your warehouses, e.g. all warehouses of one region or one company. A warehouse belongs to at most one group, and groups are not nested. Assign a warehouse to its group via storage_group_unique_id on StorageLocations. Plato uses the groups to compare sales per warehouse group in its analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the storage group, e.g. Lager Süd.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

StorageLocations ​

The warehouses and storage locations goods are shipped from. Plato uses them to compare sales per warehouse.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameName of the warehouse, e.g. Zentrallager Hamburg.
name_1First name line of the warehouse's address.
name_2Second name line of the warehouse's address.
address_line_1Street and house number.
address_line_2Second address line, e.g. floor or apartment.
address_line_3Third address line, e.g. c/o or a building name.
zip_codePostal / zip code.
cityCity name.
country_codeISO 3166-1 alpha-2 country code, e.g. DE, AT or CH. Plato identifies the country by this code.
countryName of the country, e.g. Deutschland. The country itself is identified by country_code.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
storage_group_unique_idReference to the storage group (StorageGroups.unique_id). Must equal the referenced record's unique_id; see Identifiers. Assigns the warehouse to its storage group.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Suppliers ​

The suppliers you buy your products from. Link products to their suppliers via ProductVariantToSuppliers. Plato uses them to provide supplier analytics.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
name_1First name line of the address, typically the company name.
name_2Second name line, e.g. a name addition or a department.
name_3Third name line.
legal_entity_nameLegal entity or company name.
telephone_numberPrimary telephone number.
emailEmail address.
mobile_numberMobile phone number.
fax_numberFax number.
address_line_1Street and house number.
address_line_2Second address line, e.g. floor or apartment.
address_line_3Third address line, e.g. c/o or a building name.
state_or_provinceState or province.
zip_codePostal / zip code.
cityCity name.
country_codeISO 3166-1 alpha-2 country code, e.g. DE, AT or CH. Plato identifies the country by this code.
countryName of the country, e.g. Deutschland. The country itself is identified by country_code.
post_boxPost office box number.
zip_code_post_boxPostal code for the post office box.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

UnitConversion ​

Conversion factors between units that apply to all products, e.g. 1 kg = 1,000 g, given as numerator and denominator. Plato uses them to convert quantities into a common unit, so it aggregates order amounts correctly in its analytics and writes orders back to your ERP in the right unit.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
from_unit_unique_idReference to the source unit (Units.unique_id). Must equal the referenced record's unique_id; see Identifiers.
to_unit_unique_idReference to the target unit (Units.unique_id). Must equal the referenced record's unique_id; see Identifiers.
numeratorOne from-unit equals numerator / denominator to-units, e.g. 1 box = 12 pieces gives numerator 12 and denominator 1.
denominatorOne from-unit equals numerator / denominator to-units, e.g. 1 box = 12 pieces gives numerator 12 and denominator 1.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Units ​

The units of measure you use, e.g. piece, gram, kilogram, box or pallet. Products and sales document lines reference them for their sales, storage and package units. Plato uses units and unit conversions to aggregate order amounts correctly in its analytics and to write orders back to your ERP in the right unit.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
resource_idID in the ERP system. Used when Plato writes back to your ERP (e.g. creating orders). If your system has no separate value, repeat the unique_id; see Identifiers.
display_idThe number your users know from the ERP, e.g. the customer or article number. Lets users recognise and find the record in Plato. If your system has no separate value, repeat the unique_id; see Identifiers.
nameShort unit name or symbol.
name_longLonger unit description where available.
symbolRendered unit symbol, for example Stk.
common_codeStandard code where available, for example the UNECE unit code.
statusRecord status in your ERP. Allowed values: NORMAL, BLOCKED, HIDDEN. Tells Plato whether to use the record normally, keep it out of write-back and AI recommendations (BLOCKED) or hide it (HIDDEN); see Record Status Values.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
positionOrdering field. String; numeric values should be left-padded with zeros to sort lexically. Not a stable identifier. Lets Plato list the records in the same order as your ERP.

Transaction Data Entities ​

ContractLines ​

Your sales contracts (Verkaufskontrakte), e.g. quantity or value contracts: agreements with a customer on articles, quantities and prices that later lead to orders and invoices. Delivered as one row per contract line; each line also carries the contract's header data, e.g. customer, contract date and contract number. Plato counts them towards the order sum (Auftragseingang) like orders, so demand agreed in contracts is part of your figures.

ColumnDescription
contract_unique_idUnique identifier for the contract document: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the contract header.
contract_resource_idResource id of the contract document. Used when Plato writes contracts back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
contract_display_idDisplay id of the contract document. If your system has no separate value, repeat the matching unique_id; see Identifiers.
contract_line_unique_idUnique identifier for the contract line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
contract_line_resource_idResource id of the contract line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
contract_line_display_idDisplay id of the contract line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter contracts by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the contract to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the contract.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the contract.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the contract.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
quantity_orderedQuantity originally ordered, in the sales unit (unit_sales). Used for fulfilment tracking, and by Plato AI and Plato's analytics to count what was ordered.
quantity_deliveredQuantity delivered so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was delivered.
quantity_invoicedQuantity invoiced so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was invoiced.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the contract was agreed. Plato places the contract in the order sum (Auftragseingang) by this date.
release_dateDate the document was released or confirmed.
desired_delivery_dateCustomer-requested delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the contract.
plato_line_statusNormalised line status. Plato uses it to calculate the contract header status, with the same values as orders; see Order Status in Plato Status. Plato AI uses it to select the lines it includes in sales insights.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the contract or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the contract.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

CreditMemoLines ​

Your credit memos, delivered as one row per credit memo line. Each line also carries the credit memo's header data, e.g. customer, credit memo date and number. Plato deducts them from billed revenue, so revenue figures reflect what your customers were actually charged.

ColumnDescription
credit_memo_unique_idUnique identifier for the credit memo: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the credit memo header.
credit_memo_resource_idERP identifier for the credit memo. Used when Plato writes credit memos back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_display_idUser-facing credit memo number. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_line_unique_idUnique identifier for the credit memo line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
credit_memo_line_resource_idERP identifier for the credit memo line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_line_display_idUser-facing credit memo line identifier. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter credit memos by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the credit memo to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the credit memo.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the credit memo.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the credit memo.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards billed revenue. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of billed revenue. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
quantityQuantity on the document line, in the sales unit (unit_sales). Used by Plato AI. Deliver it as a positive quantity; only the amounts carry the negative sign.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the underlying order was placed.
credit_memo_datePosting date of the credit memo. Plato places the credit in billed revenue by this date.
release_dateDate the document was released or confirmed.
delivery_dateActual or planned delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the credit memo.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the credit memo or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the credit memo.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
shipping_type_unique_idReference to the shipping type (ShippingTypes.unique_id) of the document. A header value: repeat it on every line of the document. Must equal the referenced record's unique_id; see Identifiers. Leave it empty when the document has no shipping type. Tells Plato how the quote or order ships.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

CreditMemoRequestLines ​

Your credit memo requests (Gutschriftsanforderungen), delivered as one row per request line. Each line also carries the request's header data, e.g. customer, request date and number. Plato deducts them from the order sum (Auftragseingang).

ColumnDescription
credit_memo_request_unique_idUnique identifier for the credit memo request document: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the credit memo request header.
credit_memo_request_resource_idResource id of the credit memo request document. Used when Plato writes credit memo requests back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_request_display_idDisplay id of the credit memo request document. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_request_line_unique_idUnique identifier for the credit memo request line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
credit_memo_request_line_resource_idResource id of the credit memo request line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
credit_memo_request_line_display_idDisplay id of the credit memo request line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter credit memo requests by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the credit memo request to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the credit memo request.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the credit memo request.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the credit memo request.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards the order sum (Auftragseingang). Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of the order sum (Auftragseingang). Deliver it as a negative amount. Required in every row; see Amounts and Margins.
quantity_orderedQuantity originally ordered, in the sales unit (unit_sales). Used for fulfilment tracking, and by Plato AI and Plato's analytics to count what was ordered. Deliver it as a positive quantity; only the amounts carry the negative sign.
quantity_deliveredQuantity delivered so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was delivered. Deliver it as a positive quantity; only the amounts carry the negative sign.
quantity_invoicedQuantity invoiced so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was invoiced. Deliver it as a positive quantity; only the amounts carry the negative sign.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the credit memo request was raised. Plato places the request in the order sum (Auftragseingang) by this date.
release_dateDate the document was released or confirmed.
desired_delivery_dateCustomer-requested delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the credit memo request.
plato_line_statusNormalised line status. Plato uses it to calculate the credit memo request header status, with the same values as orders; see Order Status in Plato Status. Plato AI uses it to select the lines it includes in sales insights.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the credit memo request or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the credit memo request.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

DebitMemoRequestLines ​

Your debit memo requests (Lastschriftsanforderungen) for extra charges, delivered as one row per request line. Each line also carries the request's header data, e.g. customer, request date and number. Plato adds them to the order sum (Auftragseingang).

ColumnDescription
debit_memo_request_unique_idUnique identifier for the debit memo request document: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the debit memo request header.
debit_memo_request_resource_idResource id of the debit memo request document. Used when Plato writes debit memo requests back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
debit_memo_request_display_idDisplay id of the debit memo request document. If your system has no separate value, repeat the matching unique_id; see Identifiers.
debit_memo_request_line_unique_idUnique identifier for the debit memo request line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
debit_memo_request_line_resource_idResource id of the debit memo request line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
debit_memo_request_line_display_idDisplay id of the debit memo request line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter debit memo requests by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the debit memo request to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the debit memo request.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the debit memo request.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the debit memo request.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
quantityQuantity on the document line, in the sales unit (unit_sales). Used by Plato AI.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the underlying order was placed.
debit_memo_request_dateDate the debit memo request was raised. Plato places it in the order sum (Auftragseingang) by this date.
release_dateDate the document was released or confirmed.
delivery_dateActual or planned delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the debit memo request.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the debit memo request or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the debit memo request.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
line_discount_amountLine-level discount as an absolute amount.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

InvoiceLines ​

Your invoices, delivered as one row per invoice line. Each line also carries the invoice's header data, e.g. customer, invoice date and invoice number. Invoices are what your customers were billed for: Plato counts them towards billed revenue in its analytics. Deliver debit memos as invoice lines too; there is no separate debit memo entity. Linked to their order lines via SalesDocumentLineRelations, they also give each order line its invoice date and billed status.

ColumnDescription
invoice_unique_idUnique identifier for the invoice: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the invoice header.
invoice_resource_idERP identifier for the invoice. Used when Plato writes invoices back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
invoice_display_idUser-facing invoice number. If your system has no separate value, repeat the matching unique_id; see Identifiers.
invoice_line_unique_idUnique identifier for the invoice line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
invoice_line_resource_idERP identifier for the invoice line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
invoice_line_display_idUser-facing invoice line identifier. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter invoices by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the invoice to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the invoice.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the invoice.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the invoice.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards billed revenue. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of billed revenue. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
quantityQuantity on the document line, in the sales unit (unit_sales). Used by Plato AI.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the underlying order was placed.
invoice_datePosting date of the invoice. Plato places billed revenue in time by this date.
release_dateDate the document was released or confirmed.
delivery_dateActual or planned delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the invoice.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the invoice or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the invoice.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
line_discount_amountLine-level discount as an absolute amount.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
shipping_type_unique_idReference to the shipping type (ShippingTypes.unique_id) of the document. A header value: repeat it on every line of the document. Must equal the referenced record's unique_id; see Identifiers. Leave it empty when the document has no shipping type. Tells Plato how the quote or order ships.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

OrderLines ​

Your sales orders, delivered as one row per order line. Each line also carries the order's header data, e.g. customer, order date and order number. Orders are what your customers actually buy: Plato AI learns from this purchase history for its recommendations, and Plato counts them towards the order sum (Auftragseingang) in its analytics.

ColumnDescription
sales_order_unique_idUnique identifier for the sales order: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the order header.
sales_order_resource_idERP identifier for the sales order. Used when Plato writes orders back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
sales_order_display_idUser-facing sales order number. If your system has no separate value, repeat the matching unique_id; see Identifiers.
sales_order_line_unique_idUnique identifier for the sales order line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
sales_order_line_resource_idERP identifier for the sales order line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
sales_order_line_display_idUser-facing sales order line identifier. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter orders by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the order to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the order.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the order.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the order.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of the order sum (Auftragseingang). Deliver it as a positive amount. Required in every row; see Amounts and Margins.
quantity_orderedQuantity originally ordered, in the sales unit (unit_sales). Used for fulfilment tracking, and by Plato AI and Plato's analytics to count what was ordered.
quantity_deliveredQuantity delivered so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was delivered.
quantity_invoicedQuantity invoiced so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was invoiced.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the order was placed, not the date of a later invoice. Plato places the order in the order sum (Auftragseingang) by this date.
release_dateDate the document was released or confirmed.
desired_delivery_dateCustomer-requested delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the order.
plato_line_statusNormalised line status. Plato uses it to calculate the order header status; see Plato Status. Plato AI uses it to select the lines it includes in sales insights.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the order or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the order.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
shipping_type_unique_idReference to the shipping type (ShippingTypes.unique_id) of the document. A header value: repeat it on every line of the document. Must equal the referenced record's unique_id; see Identifiers. Leave it empty when the document has no shipping type. Tells Plato how the quote or order ships.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

QuoteLines ​

Your quotes, delivered as one row per quote line. Each line also carries the quote's header data, e.g. customer, quote date and quote number. Quotes show what your customers are interested in before they order: Plato uses them to help your sales team follow up on open quotes, and Plato AI uses the quote history for its recommendations.

ColumnDescription
quote_unique_idUnique identifier for the quote: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the quote header.
quote_resource_idERP identifier for the quote. Used when Plato writes quotes back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
quote_display_idUser-facing quote number. If your system has no separate value, repeat the matching unique_id; see Identifiers.
quote_line_unique_idUnique identifier for the quote line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
quote_line_resource_idERP identifier for the quote line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
quote_line_display_idUser-facing quote line identifier. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter quotes by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the quote to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the quote.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the quote.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the quote.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for margin figures. Deliver it as a positive amount. Required in every row; see Amounts and Margins.
quantity_orderedQuantity quoted, in the sales unit (unit_sales). Plato AI uses it for its recommendations.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
quote_dateBusiness document date of the quote as shown in the ERP. Not the technical record-creation timestamp; see created_at. Places the quote in time in Plato.
quote_valid_from_dateDate from which the quote is valid.
quote_due_dateExpiration date of the quote.
release_dateDate the document was released or confirmed.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
plato_line_statusNormalised line status. Plato uses it to calculate the quote header status; see Plato Status. Plato AI uses it to select the lines it includes in sales insights.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the quote or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the quote.
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the quote.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
shipping_type_unique_idReference to the shipping type (ShippingTypes.unique_id) of the document. A header value: repeat it on every line of the document. Must equal the referenced record's unique_id; see Identifiers. Leave it empty when the document has no shipping type. Tells Plato how the quote or order ships.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.
alternative_to_lineReference to the quote line this line is an alternative to. At most one of a base line and its alternatives is delivered/invoiced; alternative lines must be excluded from header-level aggregation.

ReturnLines ​

Your customer returns, delivered as one row per return line. Each line also carries the return's header data, e.g. customer, return date and number. Plato deducts them from the order sum (Auftragseingang), so it reflects what your customers kept.

ColumnDescription
return_unique_idUnique identifier for the return document: the same value on every line of the same document; see Identifiers. Plato groups the lines on this ID to build the return header.
return_resource_idResource id of the return document. Used when Plato writes returns back to your ERP. If your system has no separate value, repeat the matching unique_id; see Identifiers.
return_display_idDisplay id of the return document. If your system has no separate value, repeat the matching unique_id; see Identifiers.
return_line_unique_idUnique identifier for the return line: unique across all lines of this entity and stable across deliveries; see Identifiers. Plato uses it to track each line across deliveries.
return_line_resource_idResource id of the return line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
return_line_display_idDisplay id of the return line. If your system has no separate value, repeat the matching unique_id; see Identifiers.
positionLine position within the sales document. Deliver as a zero-padded string (e.g. 0000010000) so lines sort in document order. Lets Plato list the records in the same order as your ERP.
header_document_type_unique_idReference to the document type (e.g. standard order, express order). Must equal the referenced record's unique_id; see Identifiers. Lets users filter returns by type in the sales document lists of the Plato app.
header_document_type_nameName of the document type.
customer_unique_idReference to the customer account. Must equal the referenced record's unique_id; see Identifiers. Links the return to the customer, so it counts in that customer's sales history, in Plato's revenue and order analysis, and in Plato AI.
sell_to_unique_idReference to the sell-to customer entity (ordering party). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the ordering party of the return.
ship_to_unique_idReference to the ship-to customer entity (delivery recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the delivery recipient of the return.
invoice_to_unique_idReference to the invoice-to customer entity (billing recipient). Must equal the referenced record's unique_id; see Identifiers. Tells Plato the billing recipient of the return.
product_unique_idReference to the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to the article, so Plato AI can use it for recommendations.
product_nameProduct name at the time of the transaction. Used by Plato AI to identify similar products.
retail_priceNet list price of the product per price_scale_factor units, e.g. the price per 100 pieces when the factor is 100.
gtinGlobal Trade Item Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
eanEuropean Article Number (barcode). Used by Plato AI to enrich product details and identify similar variants.
supplier_product_variant_idSupplier's own article number for the product.
parts_list_typeType of parts list (e.g. BOM, set). Used when Plato writes documents back to your ERP.
partial_packing_typePartial packing type. Used when Plato writes documents back to your ERP.
supplier_unique_idReference to the supplier of the product variant. Must equal the referenced record's unique_id; see Identifiers. Links the line to its supplier in Plato's data.
header_po_numberCustomer's purchase order number (Kommission). Reference to the customer's purchasing system or tender.
header_textFree-text note on the document header.
currency_unique_idCurrency of the monetary values in this document (Currencies.unique_id). Must equal the referenced record's unique_id; see Identifiers. Tells Plato which currency the line's amounts are in.
currency_rate_to_baseHow much one unit of the document currency is worth in your base currency, e.g. 1.08. Plato multiplies the line's amounts by this rate to convert them into your base currency. Set to 1 if the document is in your base currency.
storage_location_unique_idReference to the storage location / warehouse. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which warehouse the line ships from.
line_discount_percentageLine-level discount as a fraction, e.g. 0.10 for 10 %.
header_discount_percentageHeader-level discount applied across all lines of the document, as a fraction, e.g. 0.10 for 10 %.
header_delivery_costsHeader-level delivery / freight costs.
header_other_costsOther header-level costs or surcharges.
line_delivery_costsLine-level delivery / freight costs.
line_other_costsOther line-level costs or surcharges.
total_amount_before_header_discountNet line total before the header discount is applied, in the document currency. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
total_amount_after_header_discountNet line total after the header discount, in the document currency. Plato counts this amount towards the order sum (Auftragseingang). Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_before_header_discountGross margin of the line before the header discount. Deliver it as a negative amount. Required in every row; see Amounts and Margins.
gross_margin_after_header_discountGross margin of the line after the header discount. Plato uses it for the margin figures of the order sum (Auftragseingang). Deliver it as a negative amount. Required in every row; see Amounts and Margins.
quantity_orderedQuantity originally ordered, in the sales unit (unit_sales). Used for fulfilment tracking, and by Plato AI and Plato's analytics to count what was ordered. Deliver it as a positive quantity; only the amounts carry the negative sign.
quantity_deliveredQuantity delivered so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was delivered. Deliver it as a positive quantity; only the amounts carry the negative sign.
quantity_invoicedQuantity invoiced so far (cumulative), in the sales unit (unit_sales). Used for fulfilment tracking: lets Plato track how much of the line was invoiced. Deliver it as a positive quantity; only the amounts carry the negative sign.
unit_salesSales unit of measure (e.g. piece, meter, kg). Used when Plato writes documents back to your ERP.
unit_storageStorage unit of measure. Used when Plato writes documents back to your ERP.
sales_unit_to_storage_unit_factorNumber of sales units in one storage unit. Used when Plato writes documents back to your ERP.
package_unitPackage unit of measure (e.g. carton, pallet). Used when Plato writes documents back to your ERP.
sales_units_per_package_unitNumber of sales units per package. Used when Plato writes documents back to your ERP.
price_scale_factorNumber of units the price refers to, e.g. 100 when retail_price is the price per 100 pieces. Defaults to 1 if not provided; when sent, must be greater than 0. Used when Plato writes documents back to your ERP.
order_dateDate the return was raised. Plato places the return in the order sum (Auftragseingang) by this date.
release_dateDate the document was released or confirmed.
desired_delivery_dateCustomer-requested delivery date.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.
line_textFree-text note per line item.
line_referenceExternal reference per line item.
clerk_unique_idReference to the clerk (Erfasser) who created or modified the document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato which clerk handled the return.
plato_line_statusNormalised line status. Plato uses it to calculate the return header status, with the same values as orders; see Order Status in Plato Status. Plato AI uses it to select the lines it includes in sales insights.
erp_line_statusYour ERP's own status of the line, as your users know it.
erp_header_statusYour ERP's own status of the document, as your users know it.
is_cancelledWhether the document or line has been cancelled. Tells Plato whether the return or the line was cancelled.
cancelled_reasonReason for cancellation (e.g. customer request, duplicate).
customer_contact_unique_idReference to the customer contact person for this document. Must equal the referenced record's unique_id; see Identifiers. Tells Plato the contact person for the return.
contact_name_overrideContact name captured at the time the sales document was created.
delivery_name_1Delivery recipient: first name line, typically the company name.
delivery_name_2Delivery recipient: second name line, e.g. a name addition or a department.
delivery_name_3Delivery recipient: third name line.
delivery_address_line_1Delivery address: street and house number.
delivery_address_line_2Delivery address: second address line, e.g. floor or apartment.
delivery_address_line_3Delivery address: third address line, e.g. c/o or a building name.
delivery_address_state_or_provinceDelivery address: state or province.
delivery_address_zip_codeDelivery address: postal code.
delivery_address_cityDelivery address: city.
delivery_address_country_codeDelivery address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
delivery_address_countryDelivery address: name of the country, e.g. Deutschland.
billing_name_1Billing recipient: first name line, typically the company name.
billing_name_2Billing recipient: second name line, e.g. a name addition or a department.
billing_name_3Billing recipient: third name line.
billing_address_line_1Billing address: street and house number.
billing_address_line_2Billing address: second address line, e.g. floor or apartment.
billing_address_line_3Billing address: third address line, e.g. c/o or a building name.
billing_address_state_or_provinceBilling address: state or province.
billing_address_zip_codeBilling address: postal code.
billing_address_cityBilling address: city.
billing_address_country_codeBilling address: ISO 3166-1 alpha-2 country code, e.g. DE, AT or CH.
billing_address_countryBilling address: name of the country, e.g. Deutschland.
unit_sales_unique_idReference to the sales unit (Units.unique_id) matching unit_sales. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
unit_storage_unique_idReference to the storage unit (Units.unique_id) matching unit_storage. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
package_unit_unique_idReference to the package unit (Units.unique_id) matching package_unit. Must equal the referenced record's unique_id; see Identifiers. Plato uses it to convert quantities correctly in its analytics and when writing documents back to your ERP.
erp_header_status_idCode of your ERP's own status of the document.
erp_header_status_nameYour ERP's own status of the document, as your users know it.
erp_line_status_idCode of your ERP's own status of the line.
erp_line_status_nameYour ERP's own status of the line, as your users know it.
project_unique_idReference to the project (Projects.unique_id) this line belongs to. Must equal the referenced record's unique_id; see Identifiers.
source_channel_unique_idIdentifier of the sales channel through which the transaction was created (e.g. webshop, EDI, phone, sales rep).
source_channel_nameHuman-readable name of the source channel.
header_line_unique_idFor parts-list component lines: reference to the line item within the same document that is the parts-list header. Must equal the referenced record's unique_id; see Identifiers.

SalesDocumentHeaderRelations ​

How your sales documents follow from each other, at document level: a quote converted into an order or an order into an invoice (CONVERSION), or an invoice credited by a credit memo (CREDIT). Plato uses these links to follow each deal from quote to invoice, e.g. to see which quotes turned into orders.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
source_document_familyDocument family of the source document, one of the Plato document families: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST or DEBIT_MEMO_REQUEST (as in SalesDocumentTypes). Together with source_document_unique_id it identifies the document.
source_document_unique_idReference to the source document (e.g. the quote that was converted to an order). Must equal the referenced record's unique_id; see Identifiers. Identifies the document the link starts from.
target_document_familyDocument family of the target document, one of the Plato document families: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST or DEBIT_MEMO_REQUEST (as in SalesDocumentTypes). Together with target_document_unique_id it identifies the document.
target_document_unique_idReference to the target document (e.g. the order created from the quote). Must equal the referenced record's unique_id; see Identifiers. Identifies the document the link points to.
relation_typeType of relationship between documents. Allowed values: CONVERSION, CREDIT. Tells Plato whether the link is a conversion or a credit.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.

SalesDocumentLineRelations ​

The same links between individual document lines: which quote line became which order line, and which order line was invoiced or credited by which invoice or credit memo line. Plato uses them to know which order lines have been invoiced and when. Where your ERP delivers invoices without the underlying order, Plato uses these links to derive the order from the invoice lines.

ColumnDescription
unique_idIdentifier of the record. Unique within this entity and stable across deliveries; see Identifiers. Plato uses it to recognise the record across deliveries and to link other records to it.
source_document_familyDocument family of the source document, one of the Plato document families: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST or DEBIT_MEMO_REQUEST (as in SalesDocumentTypes). Together with source_document_unique_id it identifies the document.
source_document_unique_idReference to the source document (e.g. the quote that was converted to an order). Must equal the referenced record's unique_id; see Identifiers. Lets Plato tie an invoice back to its order.
source_line_unique_idReference to the source document line. Must equal the referenced record's unique_id; see Identifiers. Identifies the line the link starts from.
target_document_familyDocument family of the target document, one of the Plato document families: QUOTE, ORDER, INVOICE, CREDIT_MEMO, RETURN, CONTRACT, CREDIT_MEMO_REQUEST or DEBIT_MEMO_REQUEST (as in SalesDocumentTypes). Together with target_document_unique_id it identifies the document.
target_document_unique_idReference to the target document (e.g. the order created from the quote). Must equal the referenced record's unique_id; see Identifiers. Identifies the document the link points to.
target_line_unique_idReference to the target document line. Must equal the referenced record's unique_id; see Identifiers. Identifies the line the link points to, so Plato can match the two lines.
relation_typeType of relationship between documents. Allowed values: CONVERSION, CREDIT. Plato uses CONVERSION links to tie invoices back to their orders.
created_atTimestamp when the record was created in the source system. Metadata only: Plato stores it but does not use it to process your data.
updated_atTimestamp when the record was last modified in the source system. Metadata only: Plato stores it but does not use it to process your data.