Data export formats
Format version 1
This register describes the formats, data structures and standards of the miphu data export. It belongs to section 11(7) and Annex 1 of the terms of use.
A German version of the register is in preparation.
The format of the archive an owner of a company account downloads in miphu (Settings, Company details, Export data on iPhone and iPad; Settings, Company, Export data on the Mac and on the web). It is the register of data formats, data structures and standards that Art. 26 of Regulation (EU) 2023/2854 (Data Act) asks a provider to publish, and it describes every category of exportable data in Annex 1 of the terms of use.
The archive
One ZIP file (APPNOTE 6.3.10; ZIP64 records only above 4 GiB or 65,535 files). Entry names are ASCII.
| Path | Content |
|---|---|
README.md | What the archive is, in German and English. |
manifest.json | Format name and version, export id, company, time of creation, every other entry with size and SHA-256, the columns of each dataset, and everything left out with its reason. |
schema/<area>/<dataset>.schema.json | JSON Schema (2020-12) of one dataset. |
data/<area>/<dataset>.json | The dataset: one JSON array of objects, one object per record. |
data/<area>/<dataset>.csv | The same records as CSV. |
files/... | Binary files (PDF, XML, PNG, JPEG, DATEV files, the documents of the document management and the article images), referenced from their dataset. |
An archive above 50 GiB is split into volumes (…-teil-01.zip, …-teil-02.zip, …), each a complete ZIP. Volume 1 holds README.md, manifest.json, the schemas and the datasets; the other volumes hold files, and manifest.json names the volume of every file.
Data only. Since 3 October 2026 an export is started as one of two kinds, and the manifest's contents says which: all (data and files, every archive before) or data (every dataset as JSON and CSV, no files/). A data-only archive is this format without files/: the same datasets, columns, schemas and encoding; a file column still names {"path", "sha256", "bytes"} of each file as a full export holds it, manifest.json lists no files and says so in contentsNote. An archive without contents holds files.
The manifest's format is miphu-company-export and formatVersion is 1. formatRevision (1.79 since 23 October 2026) names the additions within version 1; an archive without it is 1.0. A revision is a name, not a decimal: 1.10 follows 1.9.
Revision 1.1 added the dataset crm.partners (every business partner, prospects included) and appended columns to crm.leads, crm.customers and crm.contacts; every column of 1.0 kept its place, name, type and meaning.
Revision 1.2 appended articles, stock, purchasing and personnel to team.invitations (the rights an invitation offers); every column of 1.1 kept its place, name, type and meaning.
Revision 1.3 appended task_changed and task_started to team.notification-settings (two new push switches); every column of 1.2 kept its place, name and type, and task_digest there has no effect any more (the morning summary is no longer sent). Since 28 September 2026 the stored switch is deleted and task_digest is always false; the column keeps its place, name and type.
Revision 1.4 appended legalFormName to company.profile (a legal form in the company's own wording) and access_removed_at to personnel.people (the record of a person whose access was deleted); every column of 1.3 kept its place, name, type and meaning. Since then every access has a personnel record.
Revision 1.5 added the dataset team.interface-settings (each member's table layouts in the web and the Mac app); every column of 1.4 kept its place, name, type and meaning.
Revision 1.6 added the dataset crm.erased-records (the keys of leads and contacts deleted permanently); every column of 1.5 kept its place, name, type and meaning.
Revision 1.7 added the datasets personnel.pay-agreements, personnel.pay-components and personnel.pay-requests (pay, in the owner's export only) and documents.person-releases, and appended personnel_number to personnel.people and personnel_allowed to ai.settings; every column of 1.6 kept its place, name, type and meaning.
Revision 1.8 appended first_retrieved_at to documents.person-releases (when the person first opened a released document; since then the openings under My documents are no longer logged one by one in documents.document-access), personnel_confirmed_at, personnel_confirmed_by and personnel_notice_version to ai.settings (the owner's confirmation before AI connections may read personnel data) and restrictedAt to crm.partners (a customer whose personal data were removed); every column of 1.7 kept its place, name, type and meaning.
Revision 1.9 appended ended_at to subscription.stripe-bindings (when Stripe ended the subscription; its paid time stays); every column of 1.8 kept its place, name, type and meaning.
Revision 1.10 added the manifest's contents (and contentsNote for a data-only archive) and the data-only archive; every dataset and column of 1.9 kept its place, name, type and meaning, and a full archive differs from 1.9 only by those two manifest members.
Revision 1.11 appended days_source to schedule.absences (whether a vacation's day count is the proposal from the person's working days and the public holidays, or was set by a person); every column of 1.10 kept its place, name, type and meaning, and every vacation now carries its day count.
Revision 1.12 appended cancelled_at and cancel_reason to money.expenses (a booked expense cancelled with its reason; its status is then cancelled), paymentTermDays to company.profile (the payment term in days new invoices take) and zahlungszielTage to the customers (a customer's own payment term, empty for the company's); every column of 1.11 kept its place, name, type and meaning. An expense original may now be an XML e-invoice (media_type application/xml).
Revision 1.13 appended erinnernAm to crm.tasks (when the task reminds its people by push) and task_due to team.notification-settings (the switch for that push); every column of 1.12 kept its place, name, type and meaning.
Revision 1.14 added the datasets documents.contract-terms (the terms of documents of the type contract) and documents.contract-reminders (the reminder task of each notice date), and appended document_id to crm.task-references (a task about a document); every column of 1.13 kept its place, name, type and meaning.
Revision 1.15 appended vatRegistrations to company.profile (the other countries the company is registered in for VAT, with the number where it was given); every column of 1.14 kept its place, name, type and meaning.
Revision 1.16 added the datasets money.dunning-notices (payment reminders and dunning notices with their PDF) and money.dunning-requests, and appended dunning to company.document-prefixes (the prefix of their numbers); every column of 1.15 kept its place, name, type and meaning.
Revision 1.17 added the datasets money.recurrences (recurring invoices and tasks), money.recurrence-runs (each period run, with the draft or task it created) and money.recurrence-requests; every column of 1.16 kept its place, name, type and meaning. An invoice's draft may name servicePeriod (first and last day) beside or instead of serviceDate.
Revision 1.18 added the datasets team.calendar-links (the members' calendar links, without their key) and team.calendar-setting; every column of 1.17 kept its place, name, type and meaning.
Revision 1.19 appended to documents.invoices the frozen gross amount (snapshotGross), to documents.issued-quotes the frozen currency and net amount (currency, net) and the follow-up day (follow_up_on), to documents.orders the confirmation day, title, buyer name, currency, net and gross amount as stored beside the order (confirmed_on, titel, buyer_name, currency, net, gross), and quoteFollowUpDays to company.profile; the generated values repeat what the document's own JSON holds. Every column of 1.18 kept its place, name, type and meaning.
Revision 1.20 added the dataset inventory.units (the company's own units with the standard code each stands for) and appended unit_id to inventory.articles; every column of 1.19 kept its place, name, type and meaning.
Revision 1.21 added the dataset inventory.article-units (further units of an article with their factor) and appended article_unit_id to inventory.codes, factor to inventory.order-lines and inventory.delivery-note-lines and unit_code to inventory.attribute-values; every column of 1.20 kept its place, name, type and meaning.
Revision 1.22 added the category worktime (recorded working time) with the datasets worktime.settings, worktime.confirmations, worktime.events, worktime.corrections, worktime.blocks, worktime.chains, worktime.pruned and worktime.requests, in the owner's export only; every column of 1.21 kept its place, name, type and meaning.
Revision 1.23 added the dataset money.exchange-rates (the rates kept with documents in another currency than the company's base currency); every column of 1.22 kept its place, name, type and meaning.
Revision 1.24 added the datasets schedule.holiday-days (the company's own days beside the public holidays: a day off, a half day, a closure, a holiday worked through) and schedule.holiday-requests, and appended location_country and location_region (the place of work, when it is not the company's seat) to personnel.people; every column of 1.23 kept its place, name, type and meaning.
Revision 1.25 appended sold to inventory.articles; sales_price of an article that is not sold may be empty. Every other column of 1.24 kept its place, name, type and meaning.
Revision 1.26 appended rechnungsweg to company.profile (the company's answers to the invoicing duty of its country: the threshold of a stage, and a duty lowered with its reason); every column of 1.25 kept its place, name, type and meaning. An invoice recorded from a national system carries extern (its system and when it was recorded) in its snapshot.
Revision 1.27 lets variant_key of inventory.articles hold a number part n:<value> (the value on a number axis, in that attribute's unit) beside option ids, and lets a variant have rows in inventory.bill-of-materials. Every column of 1.26 kept its place, name and type.
Revision 1.28 lets money.exchange-rates hold rates set by hand on payments (kind payment, the payment's id) and on invoice drafts; an invoice in another currency than the one its seller's country declares tax in carries steuerwaehrung (that tax total, its rate and where the rate is from) in its snapshot. Every column of 1.27 kept its place, name, type and meaning.
Revision 1.29 added the datasets inventory.workcenters (the production's work centres) and inventory.production-requests, and appended production (the right „Fertigung“) to team.memberships and team.invitations; every column of 1.28 kept its place, name, type and meaning.
Revision 1.30 added the datasets inventory.routings and inventory.routing-steps (the routing of an article: its work steps at work centres with set-up and unit times); every column of 1.29 kept its place, name, type and meaning.
Revision 1.31 added the production orders (inventory.production-settings, inventory.production-numbers, inventory.production-orders, inventory.production-order-materials, inventory.production-order-steps, inventory.production-reports), appended production_order to company.document-prefixes, and lets inventory.stock-movements hold the kinds production_consume and production_produce with the source production; every column of 1.30 kept its place, name, type and meaning.
Revision 1.32 added the dataset money.tax-exchange-rates (the rate of the tax currency set by hand on an invoice whose seller country declares tax in a currency that is neither the invoice's nor the company's base currency); every column of 1.31 kept its place, name, type and meaning.
Revision 1.33 appended production_order_id to schedule.shifts (the production order a shift is planned for); every column of 1.32 kept its place, name, type and meaning.
Revision 1.34 appended segment_from to worktime.corrections (a reference correction of one segment of a block, by the instant the segment showed as its start); every column of 1.33 kept its place, name, type and meaning.
Revision 1.35 added the datasets money.proformas (proformas of invoice drafts with their PDF) and money.proforma-requests, and appended proforma to company.document-prefixes (the prefix of their numbers); every column of 1.34 kept its place, name, type and meaning.
Revision 1.36 added the dataset documents.order-time-bookings (time booked at an order: person, day, minutes, note; a removed booking keeps its row with removed_at), and worktime.requests may hold the kind block (a block corrected in one step); every column of 1.35 kept its place, name, type and meaning.
Revision 1.37 appended responsibleId to documents.quotes (the person responsible for the quote, whose follow-ups they are); every column of 1.36 kept its place, name, type and meaning.
Revision 1.38 appended decision_reason to schedule.absences (the reason the person who decided gave with an approval or a refusal, empty when none was given); every column of 1.37 kept its place, name, type and meaning.
Revision 1.39 appended giroCode to company.profile (whether issued euro invoices with a SEPA IBAN carry a GiroCode); every column of 1.38 kept its place, name, type and meaning.
Revision 1.40 added the dataset crm.lead-sources (the company's own lead sources: key, name, archived); crm.leads quelle now holds the key of a source (website, empfehlung, google, meta, messe, telefon, sonstiges or q- and twelve hexadecimal digits, matching a row of crm.lead-sources) or is empty; every column of 1.39 kept its place, name, type and meaning.
Revision 1.41 appended scope_all to ai.connections (the connection holds all areas the person may grant, now and later), and mode there and aiAccess in team.memberships may hold full (a third level: also deleting, archiving and cancelling). It also names what audit.log holds since 12 October 2026: the appended actorKind and supportAnlass (a change SwiftLabs support made on a request of the company), whose actorId is then empty. Every other column of 1.40 kept its place, name, type and meaning.
Revision 1.42 added the quality datasets inventory.quality-defect-types, inventory.quality-plans, inventory.quality-plan-checks, inventory.inspection-numbers, inventory.inspections, inventory.inspection-checks, inventory.inspection-measurements, inventory.inspection-defects, inventory.quality-holds and inventory.quality-requests; appended quality (the quality right) to team.memberships and team.invitations and inspection (the prefix of inspection numbers) to company.document-prefixes; inventory.stock-movements may hold the source quality (a rejected quantity scrapped, held goods moved). Every column of 1.41 kept its place, name, type and meaning.
Revision 1.43 appended form, laenge_mm, breite_mm, dicke_mm, durchmesser_mm, ausschnitt_laenge_mm and ausschnitt_breite_mm to inventory.lots: the form and the measures in millimetres of a rest (material left over in production), empty for every other batch and serial number. Every column of 1.42 kept its place, name, type and meaning.
Revision 1.44 added inventory.quality-nonconformities, inventory.quality-nonconformity-team, inventory.quality-nonconformity-defects, inventory.inspection-certificates (with the issued PDF as a file), inventory.inspection-certificate-lines and inventory.inspection-certificate-inspections; appended the right to release inspection certificates to team.memberships (qualityRelease) and team.invitations (quality_release), nonconformity and certificate (their number prefixes) to company.document-prefixes, nonconformity_last and certificate_last to inventory.inspection-numbers, and nonconformity_id to inventory.quality-holds and crm.task-references. Every column of 1.43 kept its place, name, type and meaning.
Revision 1.45 added the quality datasets inventory.quality-gauges, inventory.quality-gauge-calibrations, inventory.quality-sampling-states, inventory.quality-inspection-lots, inventory.quality-control-limits, inventory.quality-supplier-evaluations and inventory.quality-settings; appended aql, inspection_level, skip_qualify and skip_frequency (the AQL sample) to inventory.quality-plans, gauge_id to inventory.quality-plan-checks, the AQL plan an inspection was opened with and its verdict (aql_value … aql_verdict) to inventory.inspections, and gauge_id and gauge_overdue to inventory.inspection-checks; sample_kind there may hold aql. Every column of 1.44 kept its place, name, type and meaning.
Revision 1.46 appended externeId to crm.partners, crm.contacts and crm.leads and external_id to inventory.suppliers, inventory.articles and personnel.people: the number of each record in the system it came from (a supplier's own, not its partner's), unique in the company without regard to case. Every column of 1.45 kept its place, name, type and meaning.
Revision 1.47 appended follow_up_task_id to documents.issued-quotes: following up a quote is a task about it (crm.tasks, crm.task-references), and follow_up_on is that task's due day while it is open. Every column of 1.46 kept its place, name, type and meaning.
Revision 1.48 appended day_rate_permitted to datev.settings: whether the tax office permits the company to convert amounts in other currencies at the day rate (§ 16 Abs. 6 Satz 3 UStG); the DATEV export reads it. Every column of 1.47 kept its place, name, type and meaning.
Revision 1.49 appended privatkunde to crm.partners: whether the customer buys as a consumer; the late-payment proposal and the national invoicing duties read it. Every column of 1.48 kept its place, name, type and meaning.
Revision 1.50 appended rate to datev.run-items: the rate a run booked an invoice in another currency at, which a later cancellation or correction of that invoice is booked at. Every column of 1.49 kept its place, name, type and meaning.
Revision 1.51 appended hourlyCostRate to company.profile and added personnel.cost-rates: the internal cost of one working hour, for the company and per person, that the post-calculation of an order prices its hours at. Every column of 1.50 kept its place, name, type and meaning.
Revision 1.52 added company.number-counters and appended period and starts to company.document-prefixes and credit_shared to company.issued-invoice-series: every number series restarts per year (or month) at the company's start value, and a record numbered from then on carries its period in number_prefix (AU-2026), its number being number_prefix, a hyphen and seq with at least four digits. Every number given before keeps its form and every column of 1.51 its place, name and type.
Revision 1.53 appended lead_day and due_day to money.recurrences: the fixed day a recurrence creates its draft or task on, and the fixed day its invoices fall due. Every column of 1.52 kept its place, name, type and meaning.
Revision 1.54 added money.invoice-payment-discounts (Skonto taken on invoices, and taken back) and appended skonto to crm.partners, skonto_units to money.invoice-payment-balances and discount_id to money.invoice-payment-requests; entry_id there is empty for a request that recorded a Skonto alone. Every column of 1.53 kept its place, name, type and meaning.
Revision 1.55 added recurring expenses: money.recurrences takes kind expense and appends source_expense_id, supplier_id and confirm, money.recurrence-runs appends expense_id. Every column of 1.54 kept its place, name and type; kind, due_day and template gained the expense case beside their former meaning.
Revision 1.56 added optional and alternative quote positions: a position in a quote's draft and frozen snapshot may carry art (optional or alternativ) and alternativZu (the id of the ordinary position it replaces); neither counts in the quote's calculation. The decision of documents.issued-quotes may carry auswahl, the positions that apply. No column changed.
Revision 1.57 added prorated first periods and price changes of recurring invoices: money.recurrences appends prorate and service_start, and the dataset money.recurrence-price-changes holds the lines in force from a day on. Every column of 1.56 kept its place, name and type; anchor of a prorated rule is the first day of the calendar unit its service begins in.
Revision 1.58 added the Sammelrechnung and cumulative advances: an invoice's draft and frozen snapshot may carry sammel (the orders and delivery notes it bills, each with number, date and its line ids), abrechnung.auftraege (every order a Schlussrechnung settles) and abrechnung.kumuliert (a cumulative Abschlag: the work completed to date and the earlier advances it is billed less of); a deduction may carry kumuliert. A datev.run-items row may have kind anzahlung, a payment on an advance whose tax went over with it. No column changed.
Revision 1.59 added offsets and refunds of a credit: money.invoice-payments takes kind refund (negative, its correction positive), the dataset money.invoice-payment-allocations holds offsets with another invoice of the same customer, money.invoice-payment-balances appends allocated_units and money.invoice-payment-requests allocation_pair. Every column of 1.58 kept its place, name and type.
Revision 1.60 added the dataset money.dunning-stops (an invoice or a customer held out of dunning, with reason and last day). The fee, interest and flat-rate compensation of an issued money.dunning-notices row now count to the invoice's open item and receivable; no column changed.
Revision 1.61 added the discount on the whole document: the draft of a quote, an order or an invoice (in documents.invoices and the sales datasets, and in a frozen snapshot) may carry belegRabatt (art prozent or betrag, wert, grund); its calculation then names totals.lineTotal (the lines' net), totals.allowance (kind, value, reason and the amount taken off) and each tax group's allowance - the group's basis is already less it, so totals.net is the lines' net less the discount. No column changed.
Revision 1.62 added the retention of VOB/B § 17 and the Teilschlussrechnung: the datasets documents.order-retention-terms (an order's default retention) and money.invoice-retention-releases (a retention released by a guarantee, newest revision holds). An invoice's draft and frozen snapshot may carry abrechnung.teil (a Teilschlussrechnung), abrechnung.abschlaege (the advances it deducts), abrechnung.teilschluesse (the parts a Schlussrechnung follows) and abrechnung.einbehalt, its calculation totals.retention (held back of the amount due). Every column of 1.61 kept its place, name and type.
Revision 1.63 added SEPA direct debit: the datasets money.sepa-creditor (the creditor identifier), money.sepa-mandates (the customers' mandates), money.sepa-runs (a run and the pain.008 file's message id) and money.sepa-collections (each invoice a run collects, with mandate, sequence and amount). An invoice draft (in documents.invoices) may carry lastschrift (mandatId, referenz, glaeubigerId, iban, art). No column changed.
Revision 1.64 added the bank accounts: the datasets money.payment-accounts (bank accounts and cash boxes) and money.payment-account-requests; account_id appended to money.invoice-payments and money.expense-payments (the account a payment went through). An expense's fields (in money.expenses) may carry taxCase, selfAssessedRate, serviceDate and servicePeriod; an invoice line in a draft or snapshot leistungsart (lieferung, leistung) and vorsteuerabzug. Every column of 1.63 kept its place, name and type.
Revision 1.65 added the VAT settings: the datasets money.tax-settings (every saved version of soll or ist, the filing period, the deadline extension and the special prepayment) and money.tax-settings-requests. An expense's fields may carry supplyType (goods, services) and inputTaxDeduction. No column changed.
Revision 1.66 added the filed VAT returns: the datasets money.tax-filings (each filing with its form values and the one it corrects), money.tax-filing-items (the documents behind it) and money.tax-check-marks. No column changed.
Revision 1.67 added online acceptance of quotes: the datasets documents.quote-links (a quote's link for its customer, with the PDF frozen with it under files/documents/quote-links/ and its SHA-256, never the link's key), documents.quote-link-decisions (the customer's decision: outcome, name, reason, positions chosen, total, network and device class) and documents.quote-link-requests. audit.log gained customerLink and the actor kind customer, documents.quote-requests gained actorKind, quoteLinkId and memberId; a quote's decision (in documents.issued-quotes) may carry quelle, name and linkId. No column changed.
Revision 1.68 added online payment through Stripe: the datasets money.online-payment-connections (the connection, new or the company's own Stripe account, its status as Stripe reported it, without Stripe's account id), money.online-payment-settings and money.online-payment-requests; anbieter appended to money.payment-accounts, whose kind may be zahlungsdienst (the Stripe balance the connection keeps). Every column of 1.67 kept its place, name and type.
Revision 1.69 appended bezuege to money.tax-check-marks: the records (ausgabe|<id>, rechnung|<id>) a check referred to when it was marked as not applying („trifft nicht zu“), empty for a mark taken back and for marks recorded before. No column changed.
Revision 1.70 appended quoteLink to company.profile (whether issuing a quote makes its link for online acceptance and prints it with its QR code).
Revision 1.71 added approvals with limits: the datasets documents.approval-rules, documents.approval-requests, documents.approval-decisions, documents.approval-commands and team.approval-deputies. No column changed.
Revision 1.72 added the withdrawal of a consumer's online acceptance (§ 356a BGB): the datasets company.withdrawal-terms (the company's Widerrufsbelehrung and whether consumers may ask for an early start) and documents.quote-link-withdrawals (who withdrew, when, the address of the acknowledgement and how its mail went). documents.quote-links gained withdrawal, withdrawal_text, withdrawal_text_sha256 and early_start (what a consumer's link froze), documents.quote-link-decisions gained early_start. No column changed.
Revision 1.73 added an invoice's payment link: the datasets money.online-payment-links (the link, its key version, who made it, how often it was opened, how it ended; without the token's hash) and money.online-payment-checkouts (the Stripe payment pages a link opened: session id, amount in minor units, currency, cash discount stage, status; without their address). No column changed.
Revision 1.74 added the bookings from Stripe: the datasets money.online-payments (each payment through a payment link: method, amount, status, when Stripe credited it, Stripe's fee), money.online-payment-refunds, money.online-payment-disputes and money.online-payment-payouts. money.invoice-payments gained source (manual or online), provider_ref (the Stripe object) and cause (on an online refund: dispute or refund), money.invoice-payment-discounts gained source and provider_ref; actor_id is empty on an online row. A dispute's withdrawal is a refund with cause dispute. actorKind of audit.log may be provider (a change booked from Stripe; actorId is then empty). Every column of 1.73 kept its place, name and type.
Revision 1.75 added the company protocol: the datasets audit.protocol-events (both hash chains, each event with its hash and its predecessor's, so the chain can be recomputed outside miphu; without the network of a sign-in), audit.protocol-chains (the heads) and audit.protocol-settings (the retention). No column changed.
Revision 1.76 added the books: the datasets money.ledger-entries and money.ledger-lines (the journal, each entry with its link of the company's hash chain and its predecessor's hash, so the chain can be recomputed outside miphu), money.ledger-chain, money.ledger-settings, money.ledger-accounts, money.ledger-account-map, money.ledger-partner-accounts (every version kept), money.ledger-fiscal-years, money.ledger-fiscal-year-events, money.ledger-periods, money.ledger-period-events, money.ledger-runs and money.ledger-requests. module of company.modules may be buchfuehrung (the books). No column changed.
Revision 1.77 added the payment accounts in the books: money.ledger-payment-accounts (the general ledger account each payment account was given) and money.ledger-balance-confirmations (balances confirmed with their statement). No column changed.
Revision 1.78 added travel expenses: the datasets money.expense-claims (the expenses a person paid and is reimbursed for), money.trips (business trips with what was entered and the per diems and mileage calculated from it, frozen at submission), money.trip-requests and company.travel-rates (the company's own rates). starts_at and ends_at of money.trips are local times (see Encoding). No column changed.
Revision 1.79 lets rechnungsformat of crm.customers and crm.partners hold xrechnung (a public body without a Leitweg-ID: every invoice to it is an XRechnung), and automatisch now also means an e-invoice where the company's seat makes the hybrid e-invoice the standard. No column changed.
Large exports
An archive above 50 GiB arrives in volumes of at most 50 GiB, each a complete ZIP and its own download; a 2 TB export is 38 volumes. The export page lists every volume with its size. In the browser each volume is an ordinary download straight to the downloads folder: an interrupted download continues from the browser's download list or starts again from the export page. The apps load in pieces and continue after an interruption.
Exports are built in the background in two lanes. Before it starts, an export's size is estimated from the database and the sizes of its files: up to 5 GiB it runs in the small lane (up to eight at a time across the service), above it in the large lane (up to two at a time); a large export never takes the place of a small one. No export starts while the exports being built or ready for download would take up more than 20 TiB of storage, and large ones leave 1 TiB of it to the small lane. Until it starts an export shows „Wartet auf den Start“ („Waiting to start“) and why it waits; it starts by itself, and a mail says when it is ready. A large export takes hours to build and stays downloadable for seven days.
A company starts one export at a time: an export with files once in 24 hours, a data-only export up to five times in 24 hours. A failed export does not count, and the export page says when the next one is possible.
Encoding
- Text: UTF-8 everywhere.
- JSON: keys are the column names below, in this order. Times are UTC in ISO 8601 with a
Z(2026-09-15T08:30:00.123Z); dates areYYYY-MM-DD; amounts (numeric) and 64-bit integers (bigint) are decimal strings, so no value loses precision; JSON columns are embedded as stored. - CSV: RFC 4180, comma, CRLF, a header row with the column names, every value in double quotes, no byte order mark. An empty field is null. JSON columns and lists appear as JSON text. JSON is authoritative where CSV cannot tell an empty text from a missing value. Values are written unchanged; a spreadsheet should import them as text.
- Files: a column that holds a file is written as
{"path", "sha256", "bytes"}in JSON and as the path in CSV; the file is stored under that path. - Integrity:
sha256in the manifest and in file references is the SHA-256 of the uncompressed bytes, as lower-case hex. - Times (
timestamp … with time zone) are instants, written in UTC. The SQL type says the precision:timestamp(3) with time zonehas three fractional digits (milliseconds,…:00.123Z),timestamp with time zonesix (microseconds,…:00.123456Z). Dates (date) are calendar days of the company's time zone (company.profile.timezone), with no time and no zone. Local times (timestamp … without time zone) are a date and a time of day as they were entered, with no zone and never converted:2026-10-23T08:30:00.000000. - Amounts come in two forms, and the column says which. A
numericcolumn namedunitsornet_unitsis an integer number of the currency's minor units: the amount isunits / 10^minor, whereminoris the currency's ISO 4217 exponent (2 for EUR and USD, 0 for JPY) — in the same dataset where it has aminorcolumn, otherwise the exponent of the currency the description names;4001in EUR is 40.01 EUR. Every other amount (prices, totals,amount,value, the amounts inside JSON documents) is a decimal in major units of its currency (40.01). - People. A column that names a person (
actor_id,created_by,owner…,assignee…,…By,account_id) holds the account's id (team.accounts.id). A column namedmembership_idholds the membership's id (team.memberships.id);team.memberships.accountIdjoins the two. An account belongs to one company, so both name the same person. - Deleted, archived and ended records are included, and a column says so:
deletedAt(customers, contacts, leads, notes, tasks),archivedAtandarchived_at(archived),trashed_at(a document in the trash),purged_at(a file whose content is gone),removed_at(a planned cash item taken out of the plan),revoked_at(AI connections, share links, product feeds, complimentary access),released_atandreleasedAt(a released stock reservation; a membership whose company was deleted),cancelled_at(shifts, stock counts),disabledAt,anonymisedAtandanonymised_at(accounts and personnel records), and for records that end by their state astatusofcancelled.
Versioning
Version 1 is frozen since 2026-09-26. No column or dataset of version 1 is renamed, removed or changes its type or its meaning; its descriptions may grow, and datasets and columns may be added. Anything else starts version 2, and this register keeps the description of version 1. Some names and values stay as they were first published even where the product now says it differently (German column names and German status values in crm.* and documents.quotes, companyId beside company_id); where the AI connection (MCP) names a value differently, the column's description gives its code.
Categories
| Annex 1 category | Datasets |
|---|---|
| Unternehmen (Company) | company.profile, company.legal-acceptances, company.invoice-number-series, company.issued-invoice-series, company.quote-number-series, company.quote-draft-counter, company.tags, company.tag-assignments, company.tag-requests, company.creation-request, company.demo-registration, company.modules, company.module-requests, company.invoice-series-counters, company.first-steps, company.document-prefixes, company.number-counters, company.withdrawal-terms, company.travel-rates |
| Zugänge und Team (Accounts and team) | team.accounts, team.memberships, team.departments, team.department-assignments, team.department-requests, team.avatars, team.avatar-requests, team.access-requests, team.notification-settings, team.invitations, team.interface-settings, team.calendar-links, team.calendar-setting, team.approval-deputies |
| Vertrieb und Kontakte (Sales and contacts) | crm.customers, crm.contacts, crm.leads, crm.notes, crm.tasks, crm.task-references, crm.lead-requests, crm.note-requests, crm.record-requests, crm.import-batches, crm.import-records, crm.import-archive, crm.history-batches, crm.history-records, crm.objections, crm.objection-identifiers, crm.objection-salt, crm.partners, crm.erased-records, crm.lead-sources |
| Angebote, Aufträge, Rechnungen (Quotes, orders, invoices) | documents.branding, documents.branding-logos, documents.branding-requests, documents.presentation-records, documents.quotes, documents.issued-quotes, documents.quote-origins, documents.quote-requests, documents.orders, documents.order-requests, documents.invoices, documents.invoice-files, documents.einvoice-validation, documents.invoice-requests, documents.imported-invoice-batches, documents.imported-invoices, documents.imported-invoice-lines, documents.imported-invoice-files, documents.imported-document-batches, documents.imported-documents, documents.imported-document-files, documents.imported-quote-parents, documents.files, documents.file-previews, documents.file-texts, documents.documents, documents.document-versions, documents.document-links, documents.document-grants, documents.document-views, documents.document-settings, documents.document-access, documents.share-links, documents.share-link-events, documents.email-addresses, documents.emails, documents.email-documents, documents.person-releases, documents.contract-terms, documents.contract-reminders, documents.order-time-bookings, documents.order-retention-terms, documents.quote-links, documents.quote-link-decisions, documents.quote-link-requests, documents.approval-rules, documents.approval-requests, documents.approval-decisions, documents.approval-commands, documents.quote-link-withdrawals |
| Zahlungen, Ausgaben, Planung (Payments, expenses, planning) | money.invoice-payments, money.invoice-payment-balances, money.invoice-payment-requests, money.expenses, money.expense-requests, money.expense-originals, money.expense-original-state, money.expense-original-requests, money.expense-payments, money.expense-payment-balances, money.expense-payment-requests, money.cash-openings, money.cash-plan, money.cash-plan-requests, money.bookkeeper-runs, money.bookkeeper-run-files, money.expense-suppliers, money.dunning-notices, money.dunning-requests, money.recurrences, money.recurrence-runs, money.recurrence-requests, money.exchange-rates, money.tax-exchange-rates, money.proformas, money.proforma-requests, money.invoice-payment-discounts, money.recurrence-price-changes, money.invoice-payment-allocations, money.dunning-stops, money.invoice-retention-releases, money.sepa-creditor, money.sepa-mandates, money.sepa-runs, money.sepa-collections, money.payment-accounts, money.payment-account-requests, money.tax-settings, money.tax-settings-requests, money.tax-filings, money.tax-filing-items, money.tax-check-marks, money.online-payment-connections, money.online-payment-settings, money.online-payment-requests, money.online-payment-links, money.online-payment-checkouts, money.online-payments, money.online-payment-refunds, money.online-payment-disputes, money.online-payment-payouts, money.expense-claims, money.trips, money.trip-requests, money.ledger-settings, money.ledger-accounts, money.ledger-account-map, money.ledger-partner-accounts, money.ledger-fiscal-years, money.ledger-fiscal-year-events, money.ledger-periods, money.ledger-period-events, money.ledger-entries, money.ledger-lines, money.ledger-chain, money.ledger-runs, money.ledger-requests, money.ledger-payment-accounts, money.ledger-balance-confirmations |
| DATEV-Exporte (DATEV exports) | datev.settings, datev.runs, datev.run-files, datev.run-items, datev.partner-accounts |
| Personal (Personnel) | personnel.people, personnel.requests, personnel.leave-entitlements, personnel.pay-agreements, personnel.pay-components, personnel.pay-requests, personnel.cost-rates |
| Einsatzplanung (Shift planning) | schedule.settings, schedule.shifts, schedule.shift-history, schedule.absences, schedule.requests, schedule.holiday-days, schedule.holiday-requests |
| Änderungsprotokoll (Change log) | audit.log, audit.protocol-events, audit.protocol-chains, audit.protocol-settings |
| KI-Verbindungen (AI agent connections) | ai.settings, ai.connections, ai.access-log |
| Abonnement (Subscription) | subscription.source, subscription.seat-control, subscription.apple-status, subscription.apple-bindings, subscription.apple-transactions, subscription.apple-renewals, subscription.apple-purchase-intents, subscription.operator-grants, subscription.stripe-bindings, subscription.complimentary-access, subscription.apple-sandbox, subscription.cloud-status, subscription.cloud-bindings, subscription.cloud-purchase-intents, subscription.stripe-cloud, subscription.stripe-changes |
| Artikel und Lager (Items and stock) | inventory.settings, inventory.tax-classes, inventory.categories, inventory.attributes, inventory.attribute-options, inventory.articles, inventory.codes, inventory.attribute-values, inventory.article-usage, inventory.requests, inventory.bill-of-materials, inventory.stock-settings, inventory.warehouses, inventory.locations, inventory.lots, inventory.stock-movements, inventory.stock-balances, inventory.article-stock, inventory.reorder-rules, inventory.invoice-stock-issues, inventory.stock-requests, inventory.suppliers, inventory.supplier-articles, inventory.purchase-numbers, inventory.purchase-orders, inventory.purchase-order-lines, inventory.goods-receipts, inventory.goods-receipt-lines, inventory.expense-links, inventory.purchase-requests, inventory.order-lines, inventory.reservations, inventory.delivery-numbers, inventory.delivery-notes, inventory.delivery-note-lines, inventory.order-invoice-lines, inventory.delivery-requests, inventory.stock-count-numbers, inventory.stock-counts, inventory.stock-count-lines, inventory.stock-count-entries, inventory.stock-count-requests, inventory.assembly-numbers, inventory.assemblies, inventory.assembly-requests, inventory.variant-axes, inventory.article-texts, inventory.article-images, inventory.shop-countries, inventory.shop-country-rates, inventory.shop-country-prices, inventory.product-feeds, inventory.shop-requests, inventory.product-image-settings, inventory.units, inventory.article-units, inventory.workcenters, inventory.production-requests, inventory.routings, inventory.routing-steps, inventory.production-settings, inventory.production-numbers, inventory.production-orders, inventory.production-order-materials, inventory.production-order-steps, inventory.production-reports, inventory.quality-defect-types, inventory.quality-plans, inventory.quality-plan-checks, inventory.inspection-numbers, inventory.inspections, inventory.inspection-checks, inventory.inspection-measurements, inventory.inspection-defects, inventory.quality-holds, inventory.quality-requests, inventory.quality-nonconformities, inventory.quality-nonconformity-team, inventory.quality-nonconformity-defects, inventory.inspection-certificates, inventory.inspection-certificate-lines, inventory.inspection-certificate-inspections, inventory.quality-gauges, inventory.quality-gauge-calibrations, inventory.quality-sampling-states, inventory.quality-inspection-lots, inventory.quality-control-limits, inventory.quality-supplier-evaluations, inventory.quality-settings |
| Arbeitszeiten (Working time) | worktime.settings, worktime.confirmations, worktime.events, worktime.corrections, worktime.blocks, worktime.chains, worktime.pruned, worktime.requests |
The datasets personnel.pay-agreements, personnel.pay-components, personnel.pay-requests, subscription.source, subscription.seat-control, subscription.apple-status, subscription.apple-bindings, subscription.apple-transactions, subscription.apple-renewals, subscription.apple-purchase-intents, subscription.operator-grants, subscription.stripe-bindings, subscription.complimentary-access, subscription.apple-sandbox, subscription.cloud-status, subscription.cloud-bindings, subscription.cloud-purchase-intents, subscription.stripe-cloud, subscription.stripe-changes, documents.email-addresses, crm.objection-salt, worktime.settings, worktime.confirmations, worktime.events, worktime.corrections, worktime.blocks, worktime.chains, worktime.pruned, worktime.requests, personnel.cost-rates are in the owner's export only; an administrator's export lists them in manifest.json under excluded.ownerOnlyDatasets.
Not included
| Data | Reason | Annex 1 Part 2 |
|---|---|---|
platform_account.archive_session: Sign-in sessions of an owner who closed the company, for the data export until the purge. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_account.deletion: SwiftLabs' record of an account deletion and its purge date. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_account.lapse: SwiftLabs' record of a subscription that ended: when it ended, the reminder mails sent and the archive date. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_account.purge_run: Log of the scheduled purge runs. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.cloud_context: The account token that binds App Store Cloud purchases to the company. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_apple.cloud_receipt: Processing record of App Store Cloud observations; the facts themselves are exported. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.cloud_recovery: Recovery schedule of the App Store Cloud lineage. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.fact_receipt: Processing record of App Store notifications; the facts themselves are exported. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple.purchase_context: The account token that binds App Store purchases to the company. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_apple_delivery.attempt: Attempts of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.budget: Rate budget of purchase confirmations. | Internal data of rate limiting and abuse protection. | interne Daten der Anfragebegrenzung und Missbrauchsabwehr |
platform_apple_delivery.delivery: Processing queue of App Store purchase confirmations. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.recovery: Recovery schedule of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.request: Requests into that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_apple_delivery.retry: Retries of that processing queue. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_billing.receipt: SwiftLabs' evidence of billing changes it applied. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_connector.authorization_code: One-time authorization codes of AI apps. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.consent: Pending consent handles of AI app sign-ins. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.refresh_token: Refresh tokens of AI app connections. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.session: Access sessions of AI app connections. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_connector.staged_file: Files an AI connection staged for a tool call (368), deleted after 30 minutes; a used file is a document or receipt. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_connector.upload_session: Short-lived upload addresses of AI connections (368): the hash of each address token. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_document.command: Idempotency receipts of document commands. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_document.text: Search index of the documents, derived from their exported fields and file texts. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_expense.original_einvoice: What the e-invoices among the receipts of expenses say, read from the exported receipt files. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_expense.original_text: Text read from the PDF receipts of expenses, derived from the exported receipt files. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_file.allowance_override: SwiftLabs' storage allowance set by hand for a company. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_file.company_key: Wrapped data keys of the file encryption. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_file.job: Processing queue of the file worker. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_file.notice: Storage notices at 80 and 100 percent and whether their mails went out. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_file.upload: Resumable upload sessions of the storage layer. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_file.usage: Quota accounting of the storage layer. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_identity.employee_session: Binding of a sign-in session to the company. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_inbound.day_count: Messages admitted per company and day, the limit of 500 of the E-Mail-Eingang; kept seven days. | Internal data of rate limiting and abuse protection. | interne Daten der Anfragebegrenzung und Missbrauchsabwehr |
platform_internal.complimentary_event: SwiftLabs' operator evidence for complimentary access it granted, changed or revoked. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_internal.receipt: SwiftLabs' operator evidence for grants it set by hand. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_ledger.job_mark: Marks of the scheduled posting run's transactions, removed after a day. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_ledger.source_state: The posting run's working state per source (the version it saw, the living entry, why a source is not booked); derived from the exported journal and the records. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_media.pending: Article images whose public copies the file worker still has to write or remove. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_onboarding.draft: The set-up of an account before it has a company. Taken over into the company's own records when the company starts, and deleted at that moment. | Held for an account before its company exists; taken over into the company's own records when the company starts, and deleted then. | Einrichtung vor dem Unternehmenskonto |
platform_online_payment.authorization: The hashes of the one-time OAuth starts that connect an existing Stripe account; valid 15 minutes, used once. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_online_payment.event: Stripe's Connect notifications by id and hash, the evidence that each was handled once; the facts they announced are in the connection. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_ops.call_log: Tool calls of the operator server, without parameters or answers. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_ops.connection: Connections of the operator server (the owner only). | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_ops.consent: Pending consent handles of the operator server. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_ops.node_report: Watcher reports of the nodes. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_ops.switch: The operator server's switch. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_ops.token: Access and refresh tokens of the operator server. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_personnel.link_origin: How each access came to its personnel record (linked before, found by its e-mail address, or created from the account) and the name a record carried before it followed the account: the way back of the S24 migration. The records and their links are exported in personnel.people. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_push.device: APNs device tokens of signed-in app installations: an address only Apple can deliver to, bound to a sign-in session and removed with it; the apps register it again after signing in. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_push.outbox: Delivery queue of push notifications: event type, device and delivery state; the content is cleared once a push is settled and the row is removed after seven days. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_push.widget_change: That something a widget shows changed for a person, kept until the push sender folds it (seconds); no content. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_push.widget_device: WidgetKit push tokens of signed-in app installations and their delivery state: an address only Apple can deliver to, bound to a sign-in session and removed with it; the apps register it again after signing in. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_reminder.task_sent: Which task reminders went out and how many pushes each queued; kept seven days. The reminder time itself is exported with the task (crm.tasks erinnernAm). | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_sheet_import.image: Image addresses of an article import and their fetch results; deleted with their session. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_sheet_import.row: Rows of an import session (a working copy of the uploaded table); deleted with their session. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_sheet_import.session: Import sessions: mapping, dry run and progress of a spreadsheet import; deleted 30 days after closing. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_shop.change: The product feed's change log of the last 30 days: positions for shops reading changes, derived from the exported articles. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_shop.change_floor: Up to which position the product feed's change log was pruned. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_signup.pending: Short-lived sign-up before the company existed: password hash, sign-up secret and App Store account token until it completes or expires; afterwards only identifiers exported elsewhere. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_stripe.checkout: Payment page sessions and their addresses. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_stripe.eu_b2c_sale: SwiftLabs' record of its sales to EU businesses without a VAT id, for the threshold of § 3a Abs. 5 UStG; the invoices themselves are Stripe's. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_stripe.event: Processing record of payment provider webhooks. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_stripe.notice: Mails about a failed Stripe payment or the end of the trial month and whether they went out. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
platform_stripe.offer: Direct sales offers: SwiftLabs' list price, the months given, the sales person and the commission; the purchase itself is exported as the subscription. | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
platform_stripe.signup: Web sign-up before the company existed: the Checkout link and the billing details sent to Stripe, cleared when the company is created; afterwards only identifiers. | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
platform_task.due_backfill: Due instants of tasks before migration 203 moved them to the start of their company day; kept for its rollback, the due dates themselves are exported with the tasks. | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column credentialVersion of team.accounts | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column passwordHash of team.accounts | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column kosit_report of documents.einvoice-validation | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column vera_report of documents.einvoice-validation | Server and processing logs of the service. | Server- und Fehlerprotokolle |
Column notice_hash of ai.connections | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token of subscription.apple-bindings | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column granted_by of subscription.complimentary-access | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column revoked_by of subscription.complimentary-access | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column token of subscription.cloud-bindings | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token_hash of team.invitations | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token_hash of inventory.product-feeds | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column crypto_salt of documents.files | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column nonce_prefix of documents.files | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column crypto_salt of documents.file-previews | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column nonce_prefix of documents.file-previews | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token_hash of documents.share-links | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token_hash of team.calendar-links | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column anbieter_konto of money.payment-accounts | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column token_hash of documents.quote-links | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column stamp of documents.quote-link-decisions | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column provider_account of money.online-payment-connections | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column receipt_hash of documents.quote-link-withdrawals | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column stamp of documents.quote-link-withdrawals | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column token_sha256 of money.online-payment-links | Password hashes, session and access keys, cryptographic keys: handing them out would endanger the security of the service. | Passwort-Hashwerte, Sitzungs- und Zugriffsschlüssel, kryptografische Schlüssel |
Column url of money.online-payment-checkouts | SwiftLabs' own evidence of billing and operator actions, kept for its own accounting. | Eigene Nachweise von SwiftLabs über Abrechnung und Betrieb |
Column netz of audit.protocol-events | Server and processing logs of the service. | Server- und Fehlerprotokolle |
| Insights (Einblicke) | Computed on request from payments and expenses, which are exported; no data of their own. | - |
| AI agent access log older than 90 days | Only the last 90 days are exported. | - |
Datasets
company.profile
The company: name, address, tax and invoice details, currency, time zone, trial and seat facts.
Files: data/company/profile.json, data/company/profile.csv, schema/company/profile.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
name | string | text | |
timezone | string | text | |
currency | string | text | |
trialStartsAt | string (date-time) | timestamp(3) with time zone | |
trialEndsAt | string (date-time) | timestamp(3) with time zone | |
seatCapacity | integer | integer | |
paidUntil | string (date-time) or null | timestamp(3) with time zone | |
street | string or null | text | |
postalCode | string or null | text | |
city | string or null | text | |
countryCode | string or null | text | |
taxId | string or null | text | The one tax identifier of builds before 2026-09-25: the VAT identification number, else the tax number. |
profileVersion | integer | integer | |
trialConsumedAt | string (date-time) or null | timestamp(3) with time zone | |
iban | string or null | text | |
invoiceEmail | string or null | text | |
invoiceContactName | string or null | text | |
invoiceContactPhone | string or null | text | |
invoiceContactEmail | string or null | text | |
legalForm | string or null | text | The legal form as an id: the German forms by name (gmbh, ug, ek, …), those of other countries with the country first (fr_sas, gb_ltd, jp_kk), and other for a form in the company's own wording (legalFormName). |
state | string or null | text | |
phone | string or null | text | |
email | string or null | text | |
website | string or null | text | |
bic | string or null | text | |
bankName | string or null | text | |
managingDirectors | array | text[] | |
registerCourt | string or null | text | |
registerNumber | string or null | text | |
registeredSeat | string or null | text | |
smallBusiness | boolean | boolean | |
taxMode | string | text | vat or sales_tax (US): which tax categories the company's documents use. |
salesTaxRate | string or null | text | |
salesTaxName | string or null | text | |
achBankName | string or null | text | |
achRoutingNumber | string or null | text | |
achAccountNumber | string or null | text | The bank account number printed on US invoices for ACH payments. |
checkPayableTo | string or null | text | |
remitAddress | string or null | text | |
paymentNote | string or null | text | |
paymentUrl | string or null | text | |
onboardingStatus | string | text | One of open, completed, skipped, not_offered. |
onboardingChangedAt | string (date-time) or null | timestamp(3) with time zone | |
vatId | string or null | text | VAT identification number (USt-IdNr.). |
taxNumber | string or null | text | Tax number issued by the tax office (Steuernummer). |
legalFormName | string or null | text | The company's own wording of its legal form, when legalForm is other; empty otherwise. |
paymentTermDays | integer | integer | The payment term in days (0 to 365) from which a new invoice takes its due date. |
vatRegistrations | any JSON | jsonb | The other countries the company is registered in for VAT, each with its VAT number where it was given (a list of countryCode and number); empty when it named none. |
quoteFollowUpDays | integer | integer | The days (0 to 365) after its issue day on which an issued quote is due for a follow-up. |
rechnungsweg | any JSON | jsonb | The company's answers to the invoicing duty of its country: whether it is above the threshold of the stage that began on stufeAb (schwelle), and a duty it lowered with its reason (herabgesetzt); empty when it gave none. |
giroCode | boolean | boolean | Whether the company's issued euro invoices with a SEPA IBAN carry a GiroCode (EPC QR code); true unless the company switched it off. |
hourlyCostRate | string (decimal text) or null | numeric(14,4) | The company's internal cost of one working hour in its currency, for the post-calculation of orders; empty when none is set. |
quoteLink | boolean | boolean | Whether issuing a quote makes its first link for online acceptance and prints it with its QR code; false unless the company switched it on. |
company.legal-acceptances
Acceptances of the terms of use and the data processing agreement: which account accepted which version, and when.
Files: data/company/legal-acceptances.json, data/company/legal-acceptances.csv, schema/company/legal-acceptances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (decimal text) | bigint | |
account_id | string | text | Refers to team.accounts.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
document | string | text | |
version | string | text | The version of the document that was accepted, named by its publication date. |
accepted_at | string (date-time) | timestamp(3) with time zone |
company.invoice-number-series
Counter of draft invoice numbers.
Files: data/company/invoice-number-series.json, data/company/invoice-number-series.csv, schema/company/invoice-number-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
next_number | string (decimal text) | bigint |
company.issued-invoice-series
Number series of issued invoices: prefix, next number, whether it is locked; since RL2 its settings — the prefix of a series of its own for corrections (credit_prefix) and yearly series (yearly). Since 1.52 the counters are in company.number-counters; next_number and yearly hold their last state before that.
Files: data/company/issued-invoice-series.json, data/company/issued-invoice-series.csv, schema/company/issued-invoice-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
prefix | string or null | text | |
next_number | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
locked | boolean | boolean | |
credit_prefix | string or null | text | Prefix of the series of corrections; empty while corrections share the invoices' series. |
yearly | boolean | boolean | Whether every series restarts at 1 each calendar year of the document date. Since 1.52 not read: every series restarts per period (company.document-prefixes.period). |
credit_shared | boolean | boolean | Since 1.52: whether corrections take numbers of the invoices' series; otherwise they have their own (credit_prefix, empty: the default of the company's language). |
company.quote-number-series
Number series of issued quotes per year until 1.52; since then quotes count in company.number-counters.
Files: data/company/quote-number-series.json, data/company/quote-number-series.csv, schema/company/quote-number-series.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
year | integer | integer | |
next_number | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
locked | boolean | boolean |
company.quote-draft-counter
Counter of quote drafts.
Files: data/company/quote-draft-counter.json, data/company/quote-draft-counter.csv, schema/company/quote-draft-counter.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
next_seq | integer | integer |
company.tags
The company's tags (Schlagworte) with colour; archived tags are included and flagged.
Files: data/company/tags.json, data/company/tags.csv, schema/company/tags.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
colour | string | text | One of grey, coral, violet, green, gold, petrol, rose. |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
company.tag-assignments
Which tag is set on which lead, customer or contact.
Files: data/company/tag-assignments.json, data/company/tag-assignments.csv, schema/company/tag-assignments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
entity_type | string | text | One of lead, customer, contact, article, document. |
entity_id | string | text | |
tag_id | string (uuid) | uuid | |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
company.tag-requests
Requests that created, changed or assigned tags.
Files: data/company/tag-requests.json, data/company/tag-requests.csv, schema/company/tag-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
target_id | string or null | text | |
outcome | string | text | One of created, updated, archived, restored, deleted, assigned. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
company.creation-request
The request that created the company.
Files: data/company/creation-request.json, data/company/creation-request.csv, schema/company/creation-request.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
accountId | string | text | Refers to team.accounts.id. |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
company.demo-registration
Marks a demonstration company. Empty for every real company.
Files: data/company/demo-registration.json, data/company/demo-registration.csv, schema/company/demo-registration.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
demo_key | string | text | |
registered_at | string (date-time) | timestamp with time zone | |
registered_by | string | text |
team.accounts
Name, e-mail address and state of every account that has or had access to the company.
Files: data/team/accounts.json, data/team/accounts.csv, schema/team/accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
email | string | text | |
name | string | text | |
verifiedAt | string (date-time) or null | timestamp(3) with time zone | |
disabledAt | string (date-time) or null | timestamp(3) with time zone | When the account was disabled; it can no longer sign in. |
language | string or null | text | The language this person is written to in. Empty when they have never stated one. |
anonymisedAt | string (date-time) or null | timestamp(3) with time zone | When the account's personal data were anonymised. |
emailUnverifiedSince | string (date-time) or null | timestamp(3) with time zone | |
givenName | string or null | text | |
familyName | string or null | text |
team.memberships
Access of each account: role, CRM, finance and planning rights, title, rank, status.
Files: data/team/memberships.json, data/team/memberships.csv, schema/team/memberships.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
accountId | string | text | Refers to team.accounts.id. |
role | string | text | One of owner, admin, member. |
crm | boolean | boolean | |
finance | boolean | boolean | |
status | string | text | One of active, provisioned, disabled. |
version | integer | integer | Revision counter; rises with every change. |
orgTitle | string or null | text | |
sortRank | integer or null | integer | |
orgProfileVersion | integer | integer | |
planning | boolean | boolean | |
releasedAt | string (date-time) or null | timestamp(3) with time zone | When the membership stopped binding its account because the company was deleted. |
aiAccess | string | text | One of none, read, write, full. |
articles | boolean | boolean | |
stock | boolean | boolean | |
purchasing | boolean | boolean | |
personnel | boolean | boolean | Whether the person may keep the personnel records and leave entitlements without being an admin. |
production | boolean | boolean | |
quality | boolean | boolean | |
qualityRelease | boolean | boolean |
team.departments
Departments.
Files: data/team/departments.json, data/team/departments.csv, schema/team/departments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
team.department-assignments
Which member belongs to which department.
Files: data/team/department-assignments.json, data/team/department-assignments.csv, schema/team/department-assignments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
department_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.department-requests
Requests that changed departments.
Files: data/team/department-requests.json, data/team/department-requests.csv, schema/team/department-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target_id | string | text | |
outcome | string | text | One of created, renamed, archived, deleted, restored, assigned. |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.avatars
Profile pictures of members, as JPEG files with a thumbnail.
Files: data/team/avatars.json, data/team/avatars.csv, schema/team/avatars.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
version | integer | integer | Revision counter; rises with every change. |
thumb_bytes | object or null | bytea | |
image_bytes | object or null | bytea | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
team.avatar-requests
Requests that set or removed profile pictures.
Files: data/team/avatar-requests.json, data/team/avatar-requests.csv, schema/team/avatar-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
target_id | string | text | |
operation | string | text | One of replace, delete. |
expected_version | integer | integer | |
input_hash | string | text | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.access-requests
Requests that granted or changed access.
Files: data/team/access-requests.json, data/team/access-requests.csv, schema/team/access-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
account_id | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.notification-settings
Push notification switches of each member: which task events reach their devices. No row means every switch is on.
Files: data/team/notification-settings.json, data/team/notification-settings.csv, schema/team/notification-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
account_id | string | text | The member (team.accounts id). |
task_assigned | boolean | boolean | Push when a task is assigned to the member. |
task_department_open | boolean | boolean | Push when a task is given to one of the member's departments and can be taken over. |
task_claimed | boolean | boolean | Push when someone else takes over a task the member created. |
task_completed | boolean | boolean | Push when someone else completes a task the member created. |
task_digest | boolean | boolean | The switch of the former morning task summary. The summary is no longer sent; since 28 September 2026 the stored switch is deleted and the value is always false. |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
task_changed | boolean | boolean | Push when someone else changes the title, description or due date of a task assigned to the member. |
task_started | boolean | boolean | Push when the assignee starts a task the member created (status In Arbeit). |
task_due | boolean | boolean | Push when the reminder time of a task the member is responsible for has come. |
crm.customers
Customers. Deleted customers are included and flagged by deletedAt.
Files: data/crm/customers.json, data/crm/customers.csv, schema/crm/customers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
strasse | string or null | text | |
plz | string or null | text | |
ort | string or null | text | |
land | string | text | |
ustId | string or null | text | |
email | string or null | text | |
createdById | string | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
bundesstaat | string or null | text | |
belegsprache | string or null | text | |
steuerbefreit | boolean | boolean | Whether the customer is exempt from US sales tax. |
befreiungsnachweis | string or null | text | The exemption or resale certificate number printed on the invoice. |
telefon | string or null | text | |
website | string or null | text | |
branche | string or null | text | |
quelle | string or null | text | |
rollen | array | text[] | The partner's roles: kunde (customer), lieferant (supplier), or both. The AI connection (MCP) names them customer and supplier. |
listInitial | string or null | text | The letter the record files under in the A–Z index of its list, derived from its name. |
ausLeadId | string or null | text | The lead this customer was created from; empty for a customer created on its own. |
rechnungsformat | string | text | How the customer receives invoices: automatisch (an e-invoice with a Leitweg-ID or Peppol ID, and since 2026-10-23 always where the company's seat makes the hybrid e-invoice the standard), pdf, erechnung, or xrechnung (a public body without a Leitweg-ID); in the AI connection (MCP) automatic, pdf, einvoice, xrechnung. One of automatisch, pdf, erechnung. |
leitwegId | string or null | text | The Leitweg-ID of a German public buyer (buyer reference, BT-10). |
kaeuferreferenz | string or null | text | Another buyer reference the customer wants on its invoices (BT-10); never beside a Leitweg-ID. |
erechnungEmail | string or null | text | The address the customer receives e-invoices at (BT-49, scheme EM). |
peppolId | string or null | text | The customer's Peppol participant identifier, scheme and identifier (e.g. 0088:4000001000005). |
websiteObservationUrl | string or null | text | The address a check last found the partner's website at. |
websiteObservationReachable | boolean or null | boolean | Whether the website answered at the last check; empty when it was never checked. |
websiteObservedAt | string (date-time) or null | timestamp(3) with time zone | When the website was last checked. |
crm.contacts
Contacts, with their customer.
Files: data/crm/contacts.json, data/crm/contacts.csv, schema/crm/contacts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
vorname | string | text | |
nachname | string | text | |
email | string or null | text | |
telefon | string or null | text | |
position | string or null | text | |
customerId | string or null | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
akademischerTitel | string or null | text | |
leadId | string or null | text | |
listInitial | string or null | text | The letter the record files under in the A–Z index of its list, derived from its name. |
partnerId | string or null | text | The company or person the contact belongs to (crm.partners id), in every role; customerId names it only for a customer or supplier. Refers to crm.partners.id. |
externeId | string or null | text | The contact's number in the system it came from; unique in the company without regard to case. |
crm.leads
Leads in every stage, with lost reason and company details.
Files: data/crm/leads.json, data/crm/leads.csv, schema/crm/leads.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
titel | string | text | The lead's title as shown: its own title, else its partner's name. |
stage | string | text | Stored in German. The AI connection (MCP) names the stages new, in_progress, won, lost. One of Neu, In Bearbeitung, Gewonnen, Verloren. |
verlustgrund | string or null | text | |
customerId | string or null | text | The customer (crm.customers id) when the lead's partner is a customer or supplier; empty while the partner is a prospect. The partner itself is partnerId. |
contactId | string or null | text | |
ownerId | string or null | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
nextTaskId | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
telefon | string or null | text | |
email | string or null | text | |
website | string or null | text | |
strasse | string or null | text | |
plz | string or null | text | |
firmenOrt | string or null | text | |
land | string or null | text | |
branche | string or null | text | |
quelle | string or null | text | The key of the lead's source: website, empfehlung, google, meta, messe, telefon, sonstiges or the key of one of crm.lead-sources; empty without a source. |
websiteObservationUrl | string or null | text | The address a check last found the partner's website at. |
websiteObservationReachable | boolean or null | boolean | Whether the website answered at the last check; empty when it was never checked. |
websiteObservedAt | string (date-time) or null | timestamp(3) with time zone | When the website was last checked. |
sparten | array | text[] | |
listInitial | string or null | text | The letter the record files under in the A–Z index of its list, derived from its name. |
partnerId | string or null | text | The company or person the lead is with (crm.partners id). Refers to crm.partners.id. |
eigenerTitel | string or null | text | The lead's own title; empty when it carries its partner's name. |
wert | string (decimal text) or null | numeric(24,6) | The expected value of the deal, a decimal string; empty when none is entered. |
waehrung | string or null | text | The currency of wert (ISO 4217); empty when no value is entered. |
abgeschlossenAm | string (date-time) or null | timestamp(3) with time zone | When the lead was won or lost; empty while it is open. |
externeId | string or null | text | The lead's number in the system it came from; unique in the company without regard to case. |
crm.notes
Notes on leads, customers and contacts. Archived notes are included and flagged by archivedAt.
Files: data/crm/notes.json, data/crm/notes.csv, schema/crm/notes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
leadId | string or null | text | |
customerId | string or null | text | |
contactId | string or null | text | |
text | string | text | |
createdById | string | text | |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
version | integer | integer | Revision counter; rises with every change. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
createTextHash | string | text | |
archivedAt | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
archivedById | string or null | text |
crm.tasks
Tasks with assignee, due date, status and the customer, contact, lead or department they refer to.
Files: data/crm/tasks.json, data/crm/tasks.csv, schema/crm/tasks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
titel | string | text | |
beschreibung | string or null | text | |
status | string | text | Stored in German. The AI connection (MCP) names them open, in_progress, done. One of Offen, In Arbeit, Erledigt. |
prioritaet | string or null | text | Niedrig, Mittel or Hoch; empty without a priority. The AI connection (MCP) names them low, medium, high. |
faelligAm | string (date-time) or null | timestamp(3) with time zone | |
assigneeId | string or null | text | |
createdById | string | text | |
customerId | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
contactId | string or null | text | |
leadId | string or null | text | |
departmentId | string (uuid) or null | uuid | |
assignedById | string or null | text | |
erinnernAm | string (date-time) or null | timestamp(3) with time zone | When the task reminds its assignee (or, while nobody has taken it over, its department) by push; empty without a reminder. |
crm.task-references
Quotes, orders, invoices, expenses and documents a task refers to.
Files: data/crm/task-references.json, data/crm/task-references.csv, schema/crm/task-references.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
task_id | string | text | |
quote_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
invoice_id | string or null | text | |
expense_id | string (uuid) or null | uuid | |
document_id | string (uuid) or null | uuid | The document the task refers to (documents.documents id); empty for any other reference. |
nonconformity_id | string (uuid) or null | uuid |
crm.lead-requests
Requests that changed leads.
Files: data/crm/lead-requests.json, data/crm/lead-requests.csv, schema/crm/lead-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
leadId | string | text | |
kind | string | text | One of schedule, remove. |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
crm.note-requests
Requests that changed notes.
Files: data/crm/note-requests.json, data/crm/note-requests.csv, schema/crm/note-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
kind | string | text | One of update, delete, archive, restore. |
noteId | string | text |
crm.record-requests
Requests that changed customers, contacts and tasks.
Files: data/crm/record-requests.json, data/crm/record-requests.csv, schema/crm/record-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of customer-create, customer-delete, task-create, task-delete, customer-to-lead. |
entityId | string | text | |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
crm.import-batches
Imports from an earlier system: source snapshot, mapping and reconciliation.
Files: data/crm/import-batches.json, data/crm/import-batches.csv, schema/crm/import-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_instance | string | text | |
snapshot_hash | string | text | |
mapping_hash | string | text | |
schema_hash | string | text | |
snapshot_at | string (date-time) | timestamp(3) with time zone | |
importer_version | string | text | |
snapshot | any JSON | jsonb | |
mapping | any JSON | jsonb | |
reconciliation | any JSON | jsonb | |
imported_at | string (date-time) | timestamp(3) with time zone |
crm.import-records
Each imported record with its original values and what became of it.
Files: data/crm/import-records.json, data/crm/import-records.csv, schema/crm/import-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_instance | string | text | |
entity | string | text | One of customer, task, contact, lead, activity, lead-note, followup, personnel, finance. |
source_id | string | text | |
target_id | string | text | |
batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
disposition | string | text | One of imported, quarantined, excluded, historical. |
source_hash | string | text | |
target_hash | string or null | text | |
original | any JSON | jsonb | |
plan | any JSON | jsonb |
crm.import-archive
Imported history entries the company archived.
Files: data/crm/import-archive.json, data/crm/import-archive.csv, schema/crm/import-archive.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
target_id | string | text | |
archived_by | string | text | |
archived_at | string (date-time) | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
crm.history-batches
Imports of business history.
Files: data/crm/history-batches.json, data/crm/history-batches.csv, schema/crm/history-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
crm_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
crm.history-records
Imported business history entries (activities of the earlier system).
Files: data/crm/history-records.json, data/crm/history-records.csv, schema/crm/history-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to crm.history-batches.source_batch_id. |
kind | string | text | One of offer, order, task. |
source_key | string | text | |
source_hash | string | text | |
payload | any JSON | jsonb |
documents.branding
The company's brand colour and the colours printed from it, and which logo is current.
Files: data/documents/branding.json, data/documents/branding.csv, schema/documents/branding.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
logo_sha256 | string or null | text | |
colour | string or null | text | |
text_colour | string or null | text | |
line_colour | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
documents.branding-logos
Company logos as PNG files: the current one and every earlier one an issued document still prints.
Files: data/documents/branding-logos.json, data/documents/branding-logos.csv, schema/documents/branding-logos.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
sha256 | string | text | |
bytes | object | bytea | The PNG file inside this archive, with its SHA-256 (the sha256 column). |
width | integer | integer | |
height | integer | integer | |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.branding-requests
Requests that changed the logo or the brand colour.
Files: data/documents/branding-requests.json, data/documents/branding-requests.csv, schema/documents/branding-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
operation | string | text | One of logo_replace, logo_remove, colour_set. |
expected_version | integer | integer | |
input_hash | string | text | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.presentation-records
What each issued quote, order and invoice was printed with, frozen at issue: branding, layout, issuer details, the customer's state and document language.
Files: data/documents/presentation-records.json, data/documents/presentation-records.csv, schema/documents/presentation-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of invoice, offer, order. |
document_id | string | text | |
branding | any JSON | jsonb | The frozen presentation. Its SHA-256 is branding_hash. |
branding_hash | string | text | |
logo_sha256 | string or null | text | |
frozen_at | string (date-time) | timestamp with time zone |
documents.quotes
Quotes with draft, calculation, status and archive date.
Files: data/documents/quotes.json, data/documents/quotes.csv, schema/documents/quotes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
customerId | string | text | |
contactId | string or null | text | |
leadId | string or null | text | |
createdById | string | text | |
seq | integer | integer | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | Stored in German. The AI connection (MCP) names them draft, archived, open, accepted, rejected. One of Entwurf, Archiviert, Offen, Angenommen, Abgelehnt. |
draft | any JSON | jsonb | |
calculation | any JSON | jsonb | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archivedAt | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
responsibleId | string or null | text | The person responsible for the quote (team.memberships.accountId): its follow-ups are theirs. At creation the lead's owner, else the creator; empty once that membership is deleted. |
documents.issued-quotes
Issued quotes: number, frozen content, decision, the PDF as a file.
Files: data/documents/issued-quotes.json, data/documents/issued-quotes.csv, schema/documents/issued-quotes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
quote_id | string | text | |
number | string | text | |
issued_on | string (date) | date | |
snapshot | any JSON | jsonb | |
snapshot_hash | string | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
issued_at | string (date-time) or null | timestamp(3) with time zone | |
decision | any JSON | jsonb | The customer's decision as recorded: status (Offen, Angenommen or Abgelehnt; in the AI connection open, accepted, rejected), when it was recorded, and the reason; since 1.56, with Angenommen on a quote with optional or alternative positions, auswahl - the ids of the positions that apply. |
invoice_id | string or null | text | |
decided_at | string (date-time) or null | timestamp with time zone | |
currency | string or null | text | The currency of the frozen document, as its snapshot holds it. |
net | string (decimal text) or null | numeric | The net total of the frozen document, as its snapshot holds it. |
follow_up_on | string (date) or null | date | The day the quote is due for a follow-up (Nachfassen am): its issue day plus the company's days, moved or cleared while it is open; empty when cleared. Since revision 1.47 the due day of its open follow-up task (follow_up_task_id), where the company is; empty when no follow-up task is open. |
follow_up_task_id | string or null | text | The quote's follow-up task (crm.tasks), a normal task about the quote; its due day while open is follow_up_on. Kept after the task is done, for the history. |
documents.quote-origins
Where a quote was copied from.
Files: data/documents/quote-origins.json, data/documents/quote-origins.csv, schema/documents/quote-origins.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
quote_id | string | text | |
source_id | string | text |
documents.quote-requests
Requests that changed quotes.
Files: data/documents/quote-requests.json, data/documents/quote-requests.csv, schema/documents/quote-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of create, archive, issue, decision, duplicate, convert. |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
quoteId | string | text | |
actorKind | string | text | One of member, customer. |
quoteLinkId | string (uuid) or null | uuid | |
memberId | string or null | text |
documents.orders
Orders with draft, calculation, frozen content and the PDF as a file.
Files: data/documents/orders.json, data/documents/orders.csv, schema/documents/orders.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
customer_id | string | text | |
contact_id | string or null | text | |
lead_id | string or null | text | |
created_by | string | text | |
seq | string (decimal text) | bigint | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | One of draft, archived, confirmed, completed, cancelled. |
draft | any JSON | jsonb | |
calculation | any JSON | jsonb | |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
quote_id | string or null | text | The accepted quote the order was made from; empty for an order created on its own. |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
confirmed_on | string or null | text | The confirmation day of a confirmed order, as its snapshot holds it; empty for a draft. |
titel | string or null | text | The order's title, as its draft holds it. |
buyer_name | string or null | text | The buyer's name, as the order's draft holds it. |
currency | string or null | text | The order's currency, as its calculation holds it. |
net | string (decimal text) or null | numeric | The order's net total, as its calculation holds it. |
gross | string (decimal text) or null | numeric | The order's gross total, as its calculation holds it. |
documents.order-requests
Requests that changed orders.
Files: data/documents/order-requests.json, data/documents/order-requests.csv, schema/documents/order-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
order_id | string (uuid) | uuid | |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
applied_version | integer | integer | |
data | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
documents.invoices
Invoices and cancellation invoices: draft, frozen content with its hash, number, status.
Files: data/documents/invoices.json, data/documents/invoices.csv, schema/documents/invoices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
customerId | string | text | |
createdById | string | text | |
draft | any JSON | jsonb | |
version | integer | integer | Revision counter; rises with every change. |
status | string | text | One of draft, artifact_pending, issued. |
snapshot | any JSON | jsonb | The frozen invoice at issue. Its SHA-256 is snapshotHash. |
snapshotHash | string or null | text | |
number | string or null | text | |
issuedAt | string (date-time) or null | timestamp(3) with time zone | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
documentKind | string | text | |
reversalOfId | string or null | text | |
snapshotIssuedOn | string or null | text | |
snapshotDueOn | string or null | text | |
snapshotCurrency | string or null | text | |
snapshotMinorUnit | integer or null | integer | |
snapshotNet | string (decimal text) or null | numeric | |
snapshotPayable | string (decimal text) or null | numeric | |
snapshotBuyerName | string or null | text | |
creditOfId | string or null | text | The invoice a Rechnungskorrektur (documentKind credit_note) corrects; empty otherwise. |
snapshotGross | string (decimal text) or null | numeric | The gross total of the issued invoice, as its frozen snapshot holds it; empty for a draft. |
countsAsRevenue | boolean or null | boolean |
documents.invoice-files
The issued PDF and, for e-invoices, the XML of each invoice as files, with their hashes.
Files: data/documents/invoice-files.json, data/documents/invoice-files.csv, schema/documents/invoice-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
invoiceId | string | text | |
kind | string | text | One of pdf, xml. |
snapshotHash | string | text | |
contentHash | string | text | SHA-256 of the file, as stored at issue. |
mimeType | string | text | |
content | object | bytea | The file inside this archive, with its SHA-256. |
documents.einvoice-validation
Validation receipt of each e-invoice: hashes of PDF and XML, profiles and tool versions.
Files: data/documents/einvoice-validation.json, data/documents/einvoice-validation.csv, schema/documents/einvoice-validation.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
invoice_id | string | text | Refers to documents.invoices.id. |
snapshot_hash | string | text | |
receipt | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.invoice-requests
Requests that created, issued or cancelled invoices.
Files: data/documents/invoice-requests.json, data/documents/invoice-requests.csv, schema/documents/invoice-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
companyId | string | text | The company; the same in every row. |
actorId | string | text | Account that sent the request (team.accounts id). |
requestId | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payloadHash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
invoiceId | string | text |
documents.imported-invoice-batches
Imports of invoices from an earlier system.
Files: data/documents/imported-invoice-batches.json, data/documents/imported-invoice-batches.csv, schema/documents/imported-invoice-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.imported-invoices
Invoices imported from an earlier system.
Files: data/documents/imported-invoices.json, data/documents/imported-invoices.csv, schema/documents/imported-invoices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-invoice-batches.source_batch_id. |
source_key | string | text | |
source_hash | string | text | |
source_status | string | text | |
number | string or null | text | |
currency | string | text | |
net_amount | string or null | text | |
document_kind | string | text | |
tax_treatment | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
frozen_at | string (date-time) or null | timestamp with time zone | |
due_at | string (date-time) or null | timestamp with time zone | |
paid_at | string (date-time) or null | timestamp with time zone | |
related_order_unresolved | boolean | boolean |
documents.imported-invoice-lines
Lines of imported invoices.
Files: data/documents/imported-invoice-lines.json, data/documents/imported-invoice-lines.csv, schema/documents/imported-invoice-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
invoice_id | string (uuid) | uuid | Refers to documents.imported-invoices.id. |
ordinal | integer | integer | |
description | string | text | |
detail | string or null | text | |
quantity | string | text | |
unit_price | string | text | |
tax_rate | string | text | |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
documents.imported-invoice-files
Documents attached to imported invoices, as files.
Files: data/documents/imported-invoice-files.json, data/documents/imported-invoice-files.csv, schema/documents/imported-invoice-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string (uuid) | uuid | |
source_document_hash | string | text | |
name | string | text | |
mime | string | text | One of application/pdf, image/png, image/jpeg. |
sha256 | string | text | |
bytes | object | bytea |
documents.imported-document-batches
Imports of documents from an earlier system.
Files: data/documents/imported-document-batches.json, data/documents/imported-document-batches.csv, schema/documents/imported-document-batches.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
source_batch_id | string (uuid) | uuid | Refers to crm.import-batches.id. |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_hash | string | text | |
archive_hash | string | text | |
version | integer | integer | Revision counter; rises with every change. |
documents.imported-documents
Imported documents and what they belong to.
Files: data/documents/imported-documents.json, data/documents/imported-documents.csv, schema/documents/imported-documents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
file_id | string (uuid) | uuid | |
source_key | string | text | |
source_hash | string | text | |
parent_kind | string | text | One of lead, historical-offer. |
parent_id | string | text | |
name | string | text | |
mime | string | text | |
category | string or null | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
documents.imported-document-files
The imported document files.
Files: data/documents/imported-document-files.json, data/documents/imported-document-files.csv, schema/documents/imported-document-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
source_path | string | text | |
sha256 | string | text | |
bytes | object | bytea |
documents.imported-quote-parents
Quotes of the earlier system that imported documents belong to.
Files: data/documents/imported-quote-parents.json, data/documents/imported-quote-parents.csv, schema/documents/imported-quote-parents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_batch_id | string (uuid) | uuid | Refers to documents.imported-document-batches.source_batch_id. |
source_key | string | text | |
source_hash | string | text | |
title | string or null | text | |
number | string or null | text | |
source_status | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
money.invoice-payments
Recorded payments on invoices, including corrections, and since 1.59 refunds of a credit paid back to the customer.
Files: data/money/invoice-payments.json, data/money/invoice-payments.csv, schema/money/invoice-payments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | |
kind | string | text | One of payment, correction, refund. |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the invoice's currency (documents.invoices): 4001 = 40.01 EUR. A correction is negative; since 1.59 a refund (kind refund) is negative and its correction positive. |
received_on | string (date) | date | |
reference | string or null | text | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
account_id | string (uuid) or null | uuid | Since 1.64: the account the money went through (money.payment-accounts); empty before 1.64 and where none was named. |
source | string | text | Since 1.74: manual (a person recorded it, actor_id) or online (booked from Stripe; actor_id empty). One of manual, online. |
provider_ref | string or null | text | Since 1.74: on an online row the Stripe object it was booked from (pi_ a payment, re_ a refund, txn_ a dispute's withdrawal or reinstatement); empty otherwise. |
cause | string or null | text | Since 1.74: on an online refund - dispute (a chargeback withdrew the money) or refund (refunded in Stripe); empty otherwise. One of dispute, refund. |
money.invoice-payment-balances
Paid amount per invoice.
Files: data/money/invoice-payment-balances.json, data/money/invoice-payment-balances.csv, schema/money/invoice-payment-balances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | |
net_units | string (decimal text) | numeric | Payments minus corrections so far, as an integer number of minor units of the invoice's currency. |
skonto_units | string (decimal text) | numeric | Since 1.54: the Skonto taken so far (taken back excluded), as an integer number of minor units of the invoice's currency. |
allocated_units | string (decimal text) | numeric | Since 1.59: the offsets so far (taken back excluded), signed, as an integer number of minor units: positive came in from another invoice's credit, negative went to another invoice. |
money.invoice-payment-requests
Requests that recorded payments.
Files: data/money/invoice-payment-requests.json, data/money/invoice-payment-requests.csv, schema/money/invoice-payment-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
discount_id | string (uuid) or null | uuid | Since 1.54: the Skonto the request recorded (money.invoice-payment-discounts), beside or instead of a payment. Refers to money.invoice-payment-discounts.id. |
allocation_pair | string (uuid) or null | uuid | Since 1.59: the offset the request recorded or took back (pair in money.invoice-payment-allocations). |
money.expenses
Expenses with supplier, amounts, tax and category; archived expenses are included and flagged, as are their review status (recorded/reviewed/booked) and its timestamps.
Files: data/money/expenses.json, data/money/expenses.csv, schema/money/expenses.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
created_by | string | text | Refers to team.accounts.id. |
version | integer | integer | Revision counter; rises with every change. |
fields | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
status | string | text | One of recorded, reviewed, booked, cancelled. |
reviewed_at | string (date-time) or null | timestamp with time zone | |
booked_at | string (date-time) or null | timestamp with time zone | |
category_key | string or null | text | |
cancelled_at | string (date-time) or null | timestamp with time zone | When the booked expense was cancelled (status cancelled); it then counts nowhere. Empty otherwise. |
cancel_reason | string or null | text | Why the booked expense was cancelled; empty otherwise. |
money.expense-requests
Requests that changed expenses.
Files: data/money/expense-requests.json, data/money/expense-requests.csv, schema/money/expense-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
expense_id | string (uuid) | uuid | |
applied_version | integer | integer |
money.expense-originals
Uploaded receipts (PDF, PNG, JPEG) as files, including replaced ones.
Files: data/money/expense-originals.json, data/money/expense-originals.csv, schema/money/expense-originals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
filename | string | text | |
media_type | string | text | One of application/pdf, image/jpeg, image/png, application/xml. |
bytes | object | bytea | |
sha256 | string or null | text | |
byte_length | integer or null | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string | text | Refers to team.accounts.id. |
money.expense-original-state
The receipt file currently attached to each expense.
Files: data/money/expense-original-state.json, data/money/expense-original-state.csv, schema/money/expense-original-state.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
current_id | string (uuid) or null | uuid |
money.expense-original-requests
Requests that attached or removed receipts.
Files: data/money/expense-original-requests.json, data/money/expense-original-requests.csv, schema/money/expense-original-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
expense_id | string (uuid) | uuid | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.expense-payments
Recorded payouts of expenses, including corrections.
Files: data/money/expense-payments.json, data/money/expense-payments.csv, schema/money/expense-payments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
revision | integer | integer | |
kind | string | text | One of payment, correction. |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the expense's currency: 4001 = 40.01 EUR. A correction is negative. |
paid_on | string (date) | date | |
reference | string or null | text | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.expense-payments.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
account_id | string (uuid) or null | uuid | Since 1.64: the account the money went out through (money.payment-accounts); empty before 1.64 and where none was named. |
money.expense-payment-balances
Paid amount per expense.
Files: data/money/expense-payment-balances.json, data/money/expense-payment-balances.csv, schema/money/expense-payment-balances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
revision | integer | integer | |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | The currency's minor-unit exponent (ISO 4217): an amount in units is units / 10^minor (2 for EUR and USD, 0 for JPY). |
net_units | string (decimal text) | numeric | Balance as an integer number of minor units of the row's currency (see minor). |
money.expense-payment-requests
Requests that recorded payouts.
Files: data/money/expense-payment-requests.json, data/money/expense-payment-requests.csv, schema/money/expense-payment-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
entry_id | string (uuid) | uuid | Refers to money.expense-payments.id. |
money.cash-openings
Opening cash balance per currency for the cash plan.
Files: data/money/cash-openings.json, data/money/cash-openings.csv, schema/money/cash-openings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | The currency's minor-unit exponent (ISO 4217): an amount in units is units / 10^minor (2 for EUR and USD, 0 for JPY). |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
as_of_on | string (date) | date | |
confirmed_at | string (date-time) | timestamp with time zone | |
journal_fingerprint | string | text | |
version | integer | integer | Revision counter; rises with every change. |
money.cash-plan
Planned incoming and outgoing amounts (Planposten).
Files: data/money/cash-plan.json, data/money/cash-plan.csv, schema/money/cash-plan.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source_kind | string | text | One of invoice, expense, free. |
source_id | string | text | |
source_version | any JSON | jsonb | |
currency | string | text | Refers to platform_management.currency_code, not part of the export. |
minor | integer | integer | The currency's minor-unit exponent (ISO 4217): an amount in units is units / 10^minor (2 for EUR and USD, 0 for JPY). |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
planned_on | string (date) | date | |
version | integer | integer | Revision counter; rises with every change. |
removed_at | string (date-time) or null | timestamp with time zone | When the item was taken out of the plan; it stays for the record. |
direction | string or null | text | |
label | string or null | text |
money.cash-plan-requests
Requests that changed the cash plan.
Files: data/money/cash-plan-requests.json, data/money/cash-plan-requests.csv, schema/money/cash-plan-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target | string | text | |
applied_version | integer | integer |
money.bookkeeper-runs
CSV hand-overs to the bookkeeper with period, sequence, counts, totals and file hashes.
Files: data/money/bookkeeper-runs.json, data/money/bookkeeper-runs.csv, schema/money/bookkeeper-runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
period_from | string (date) | date | |
period_to | string (date) | date | |
sequence | integer | integer | |
stamp | string | text | |
zip_name | string | text | |
counts | any JSON | jsonb | |
totals | any JSON | jsonb | |
file_hashes | any JSON | jsonb | |
created_by | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
command | any JSON | jsonb |
money.bookkeeper-run-files
The CSV files of each hand-over, exactly as they were handed over.
Files: data/money/bookkeeper-run-files.json, data/money/bookkeeper-run-files.csv, schema/money/bookkeeper-run-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
run_id | string (uuid) | uuid | |
position | integer | smallint | |
name | string | text | |
content | object | bytea | The CSV file inside this archive; its SHA-256 is in the run's file_hashes. |
datev.settings
DATEV settings: consultant and client number, chart of accounts, account mapping, and whether the tax office permits the day rate for foreign currencies.
Files: data/datev/settings.json, data/datev/settings.csv, schema/datev/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
consultant_number | integer | integer | |
client_number | integer | integer | |
chart | string | text | One of SKR03, SKR04. |
account_length | integer | smallint | |
fiscal_year_start_month | integer | smallint | |
link_receipts | boolean | boolean | |
debtor_start | string (decimal text) | bigint | |
creditor_start | string (decimal text) | bigint | |
service_date | boolean | boolean | |
default_expense_account | string or null | text | |
revenue_accounts | any JSON | jsonb | |
expense_accounts | any JSON | jsonb | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string | text | Refers to team.accounts.id. |
day_rate_permitted | boolean | boolean |
datev.runs
Completed DATEV export runs with period, counts and file hashes.
Files: data/datev/runs.json, data/datev/runs.csv, schema/datev/runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
period_from | string (date) | date | |
period_to | string (date) | date | |
sequence | integer | integer | |
stamp | string | text | |
settings | any JSON | jsonb | |
zip_name | string | text | |
receipts | any JSON | jsonb | |
file_hashes | any JSON | jsonb | |
counts | any JSON | jsonb | |
created_by | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
command | any JSON | jsonb |
datev.run-files
The files of each DATEV run, as they were handed over.
Files: data/datev/run-files.json, data/datev/run-files.csv, schema/datev/run-files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
run_id | string (uuid) | uuid | |
position | integer | smallint | |
name | string | text | |
content | object | bytea |
datev.run-items
Which invoice, cancellation, expense or payment on an advance (kind anzahlung) went into which run, and the rate an invoice in another currency was booked at.
Files: data/datev/run-items.json, data/datev/run-items.csv, schema/datev/run-items.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
kind | string | text | One of invoice, expense, expense_cancellation, skonto, anzahlung. |
entity_id | string | text | |
run_id | string (uuid) | uuid | |
fingerprint | string | text | |
rate | string (decimal text) or null | numeric | The rate (units of the invoice's currency per euro) the run booked an invoice in another currency at; a later cancellation or correction of that invoice is booked at it. Empty for euro, an expense, or a booking in euro only. |
datev.partner-accounts
Debtor and creditor accounts assigned in DATEV runs.
Files: data/datev/partner-accounts.json, data/datev/partner-accounts.csv, schema/datev/partner-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of debtor, creditor. |
partner_key | string | text | |
account_number | string (decimal text) | bigint | |
first_run | string (uuid) | uuid |
personnel.people
Personnel records: name, work e-mail and phone, job title, linked member, hire date and working weekdays.
Files: data/personnel/people.json, data/personnel/people.csv, schema/personnel/people.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
work_email | string or null | text | |
work_phone | string or null | text | |
job_title | string or null | text | |
membership_id | string or null | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
hired_on | string (date) or null | date | The day the person joined. Empty when it is not on file; nothing is derived from it. |
workdays | array or null | smallint[] | The person's working weekdays, 1 for Monday to 7 for Sunday. Empty when none are on file; they only propose a day count for a holiday. |
anonymised_at | string (date-time) or null | timestamp(3) with time zone | When the personal data were anonymised. |
access_removed_at | string (date-time) or null | timestamp(3) with time zone | When the person's access to miphu was deleted. The record stays; empty while the access exists or when the record never had one. |
personnel_number | string or null | text | The personnel number, as the payroll office gives it. Empty when none is on file. |
location_country | string or null | text | The country the person works in when it is not the company's seat (ISO 3166-1). Empty: the seat. Its public holidays count for the person. |
location_region | string or null | text | The region of that country (ISO 3166-2 without the country), where its public holidays differ. Empty: the whole country. |
external_id | string or null | text | The person's number in the system it came from (an old HR or payroll system), beside the personnel number; unique in the company without regard to case. |
personnel.requests
Requests that changed personnel records.
Files: data/personnel/requests.json, data/personnel/requests.csv, schema/personnel/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
person_id | string (uuid) | uuid | |
applied_version | integer | integer |
personnel.leave-entitlements
Holiday entitlement per person and calendar year, in days, with the note beside it.
Files: data/personnel/leave-entitlements.json, data/personnel/leave-entitlements.csv, schema/personnel/leave-entitlements.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
person_id | string (uuid) | uuid | The personnel record (personnel.people id). |
year | integer | smallint | The calendar year this entitlement is for. |
days | string (decimal text) | numeric(4,1) | The entitlement in days, as it was entered. A carry-over, a mid-year start and a changed contract are each their own line. |
note | string or null | text | The note entered beside the figure. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string or null | text | Account that last wrote this line (team.accounts id). |
personnel.pay-agreements
Pay agreements per person, each valid from its date until the next one: monthly or yearly fixed salary, hourly wage or none, currency, weekly hours and a note the person can read. Entered by people; miphu computes no pay.
Files: data/personnel/pay-agreements.json, data/personnel/pay-agreements.csv, schema/personnel/pay-agreements.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
person_id | string (uuid) | uuid | The personnel record (personnel.people id). |
valid_from | string (date) | date | The first day the agreement applies. It applies until the day before the next agreement of the same person. |
basis | string | text | monthly: fixed salary per month; yearly: fixed salary per year; hourly: hourly wage; none: no fixed pay (amount empty). One of monthly, yearly, hourly, none. |
amount | string (decimal text) or null | numeric(14,4) | The amount per month, year or hour, in the agreement's currency. Empty for basis none. |
currency | string | text | |
weekly_hours | string (decimal text) or null | numeric(5,2) | Agreed working hours per week. Empty when none are on file. |
note | string or null | text | A note on the agreement; the person it belongs to can read it. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string or null | text |
personnel.pay-components
Variable pay components per person: commission, bonus, allowance or other; an amount or a percentage of a stated basis; monthly, yearly in one month, or once; valid from and until.
Files: data/personnel/pay-components.json, data/personnel/pay-components.csv, schema/personnel/pay-components.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
person_id | string (uuid) | uuid | The personnel record (personnel.people id). |
kind | string | text | One of commission, bonus, allowance, other. |
label | string | text | |
amount | string (decimal text) or null | numeric(14,4) | The amount in the component's currency; empty when the component is a percentage. |
percent | string (decimal text) or null | numeric(8,4) | The percentage of basis_note; empty when the component is an amount. |
currency | string or null | text | |
basis_note | string or null | text | What a percentage refers to, as entered (for example net sales). |
recurrence | string | text | One of monthly, yearly, once. |
month | integer or null | smallint | For a yearly component: the month it is due, 1 to 12. |
valid_from | string (date) | date | First day it applies; for a one-off component, the day it is due. |
valid_until | string (date) or null | date | Last day it applies; empty when it runs on, and always empty for a one-off component. |
note | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string or null | text |
personnel.pay-requests
Requests that changed pay: who, when, which line and a SHA-256 of the request. The request itself is not kept, so no amount is in it.
Files: data/personnel/pay-requests.json, data/personnel/pay-requests.csv, schema/personnel/pay-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of agreement.create, agreement.update, agreement.remove, component.create, component.update, component.remove, cost_rate.set. |
payload_hash | string | text | SHA-256 of the request's content, to recognise a repeated request. The content is not kept. |
person_id | string (uuid) | uuid | The personnel record (personnel.people id). |
record_id | string (uuid) | uuid | The agreement or component the request changed (personnel.pay-agreements or personnel.pay-components id); for a cost rate the personnel record. |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
schedule.settings
Scheduling settings of the company.
Files: data/schedule/settings.json, data/schedule/settings.csv, schema/schedule/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
enabled | boolean | boolean | |
workweek_start | integer | smallint | |
hint_profile | string | text | One of de, us, none. |
team_plan_visibility | string | text | One of department, all, own. |
confirmed_timezone | string or null | text | |
enabled_at | string (date-time) or null | timestamp(3) with time zone | |
enabled_by | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
schedule.shifts
Shifts with person, time, break, customer, order or production order, status and publication.
Files: data/schedule/shifts.json, data/schedule/shifts.csv, schema/schedule/shifts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
starts_at | string (date-time) | timestamp(3) with time zone | |
ends_at | string (date-time) | timestamp(3) with time zone | |
zone | string | text | |
local_date | string (date) | date | |
planned_break_minutes | integer | integer | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
location_text | string or null | text | |
note | string or null | text | |
status | string | text | One of draft, published, cancelled. |
published_at | string (date-time) or null | timestamp(3) with time zone | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
production_order_id | string (uuid) or null | uuid | The production order the shift is planned for (inventory.production-orders.id), or empty. At most one of customer, order and production order is set. |
schedule.shift-history
Every change of a shift, before and after.
Files: data/schedule/shift-history.json, data/schedule/shift-history.csv, schema/schedule/shift-history.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
shift_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
kind | string | text | One of created, changed, moved, reassigned, published, cancelled, deleted. |
before | any JSON | jsonb | |
after | any JSON | jsonb | |
actor_id | string | text | Account that sent the request (team.accounts id). |
at | string (date-time) | timestamp(3) with time zone |
schedule.absences
Absences (vacation, sick, other) with decision and, on a holiday, the confirmed number of days.
Files: data/schedule/absences.json, data/schedule/absences.csv, schema/schedule/absences.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
kind | string | text | One of vacation, sick, other. |
starts_on | string (date) | date | |
ends_on | string (date) | date | |
status | string | text | One of requested, approved, declined, cancelled. |
note | string or null | text | |
decided_by | string or null | text | |
decided_at | string (date-time) or null | timestamp(3) with time zone | |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
version | integer | integer | Revision counter; rises with every change. |
days | string (decimal text) or null | numeric(4,1) | The confirmed number of holiday days this absence uses. Only ever set on a holiday, and empty until somebody confirms it. |
days_source | string or null | text | |
decision_reason | string or null | text | The reason the person who decided gave with an approval or a refusal, at most 300 characters; empty when none was given, and always empty on sick leave. |
schedule.requests
Requests that changed shifts and absences.
Files: data/schedule/requests.json, data/schedule/requests.csv, schema/schedule/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
target_id | string or null | text | |
outcome | string | text | |
applied_version | integer | integer | |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
audit.log
The company's change log: who changed what, when, before and after.
Files: data/audit/log.json, data/audit/log.csv, schema/audit/log.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
actorId | string or null | text | Account that made the change (team.accounts id). Empty where SwiftLabs support (actorKind support), the quote's customer (customer) or Stripe (provider) made it. |
entityType | string | text | The kind of record, spelled as it was written; entries are never rewritten. Record types (the name used by miphu's other interfaces) and their spellings: absence: Absence; account: account; ai_connection: KI-Verbindung; ai_settings: KI-Verbindungen; approval_deputy: Freigabevertretung; approval_rule: Freigaberegel; article: Artikel; article_attribute: Merkmal; article_category: Artikelkategorie; article_settings: Artikelnummernkreis; article_unit: Einheit; assembly: Montage; avatar: team-avatar; bookkeeper_run: BooksExport; branding: company-branding; calendar_feed: Kalender-Abo; cash_plan: Forecast; company: company; company_details: company-details; contact: Kontakt; customer: Kunde; data_export: Datenexport; datev_run: DatevExport; datev_settings: DatevEinstellungen; delivery_note: Lieferschein; department: department; do_not_contact: Sperrliste; document: Dokument; document_settings: Dokumenteinstellungen; dunning: Mahnung; email_address: EmailEingang; exchange_rate: Wechselkurs; expense: Ausgabe, Expense; expense_payment: ExpensePayment; file: Datei; first_steps: Einrichtung; goods_receipt: Wareneingang; holiday_override: Feiertagsregel; invoice: Invoice, Rechnung; invoice_number_series: RechnungNummernkreis; lead: Lead; lead_source: Quelle; location: Lagerplatz; membership: Benutzerzugang; module: Modul; note: Notiz; online_payment: Zahlungsdienst; order: Auftrag; order_time: Zeitbuchung; payment_account: Zahlungskonto; payroll_month: Lohnvorbereitung; person: Personnel; product_feed: Produktfeed; product_image_settings: Produktbilder; production_order: Fertigungsauftrag; production_settings: Fertigungseinstellungen; proforma: Proforma; purchase_order: Bestellung; quality_certificate: Prüfzeugnis; quality_defect_type: Fehlerart; quality_gauge: Prüfmittel; quality_hold: Sperre; quality_inspection: Prüfung; quality_nonconformity: Abweichung; quality_plan: Prüfplan; quality_settings: Qualitätseinstellungen; quality_supplier_evaluation: Lieferantenbewertung; quote: Angebot; quote_number_series: Angebotsnummernkreis; recurrence: Wiederholung; reorder_rule: Meldebestand; routing: Arbeitsplan; schedule_settings: schedule-settings; share_link: Dokumentlink; shift: shift; shop_country: Shopland; stock_count: Inventur; stock_movement: Lagerbewegung; stock_settings: Lagereinstellungen; supplier: Lieferant; supplier_article: Lieferantenartikel; tag: Tag; task: Aufgabe; tax_class: Steuergruppe; team_profile: team-profile; time_block: time-block; travel_settings: Reisekosten-Einstellungen; trip: Reise; warehouse: Lager; workcenter: Arbeitsplatz; worktime: Arbeitszeit. A record type may also be written as itself. |
entityId | string | text | |
action | string | text | |
changes | any JSON | jsonb | The change: values before and after. |
reason | string or null | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
connectionId | string (uuid) or null | uuid | |
actorKind | string | text | member: a person of the company made the change. support: SwiftLabs support made it on a request of a person of the company (supportAnlass). customer: the quote's customer decided it over a link (customerLink). provider: booked from Stripe through an online payment connection. One of member, support, customer, provider. |
supportAnlass | any JSON | jsonb | Where SwiftLabs support made the change: name = who asked, kanal = the channel (email, telefon, chat, brief), am = the day of the request. |
customerLink | any JSON | jsonb | Where the quote's customer decided over a link: linkId = the link (documents.quote-links), name = the name typed on the page. |
ai.settings
Whether AI agents may connect.
Files: data/ai/settings.json, data/ai/settings.csv, schema/ai/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
connections_allowed | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string | text | |
documents_allowed | boolean | boolean | Whether AI connections may read documents: their titles, fields, extracted text and current files (PDFs, images). Off unless the owner or an administrator switched it on; switching it off takes the documents scope from every connection. |
personnel_allowed | boolean | boolean | Whether AI connections may read personnel data: records, absences (never the reason) and, for people with the Personnel right, pay. Off unless the owner switched it on; switching it off takes the scope from every connection. |
personnel_confirmed_at | string (date-time) or null | timestamp with time zone | When the owner last confirmed the notice on personnel data and switched it on (until 2026-10-08; switching on asks for no confirmation since). |
personnel_confirmed_by | string or null | text | The owner who confirmed it (team.accounts id). |
personnel_notice_version | string or null | text | The version of the notice the owner confirmed (a date): a legal basis and a contract with the AI provider, the works council, informing the staff. |
ai.connections
AI agent connections with granted scopes and revocations.
Files: data/ai/connections.json, data/ai/connections.csv, schema/ai/connections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
account_id | string | text | Refers to team.accounts.id. |
client_id | string | text | Refers to platform_connector.client, not part of the export. |
client_name | string or null | text | |
redirect_host | string | text | |
scopes | array | text[] | |
resource | string | text | |
credential_version | integer | integer | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
last_used_at | string (date-time) or null | timestamp(3) with time zone | |
revoked_at | string (date-time) or null | timestamp(3) with time zone | When it was revoked; it stays for the record. |
revoked_by | string or null | text | |
revoke_reason | string or null | text | One of user, admin, client, credential_change, account_disabled, membership_disabled, company_disabled, refresh_reuse, code_reuse, operator, access_level. |
mode | string | text | The level of the connection: read reads; write also creates and changes; full also deletes, archives and cancels. Never above the person's aiAccess. One of read, write, full. |
version | integer | integer | Revision counter; rises with every change. |
mode_changed_at | string (date-time) or null | timestamp(3) with time zone | |
scope_all | boolean | boolean | Whether the connection holds all areas: every area the person may grant at the moment it is used, now and later; scopes then keeps the areas of the grant. Personnel data and everybody's working time only while personnel_allowed in ai.settings is on. |
ai.access-log
What connected AI agents read, for the last 90 days.
Files: data/ai/access-log.json, data/ai/access-log.csv, schema/ai/access-log.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (decimal text) | bigint | |
connection_id | string (uuid) | uuid | Refers to ai.connections.id. |
company_id | string | text | The company; the same in every row. |
account_id | string | text | |
tool | string | text | |
outcome | string | text | One of ok, tool_error, forbidden, rate_limited. |
record_count | integer | integer | |
duration_ms | integer | integer | |
at | string (date-time) | timestamp(3) with time zone | When the AI agent read. Only the last 90 days are exported. |
subscription.source
Where the subscription comes from (App Store, operator grant).
Files: data/subscription/source.json, data/subscription/source.csv, schema/subscription/source.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
source | string | text | One of apple, enterprise, internal, stripe. |
binding_id | string (uuid) or null | uuid | Refers to subscription.apple-bindings.id. |
revision | string (decimal text) | bigint | |
stripe_company | string or null | text | Refers to subscription.stripe-bindings.company_id. |
subscription.seat-control
Seat reservations of the subscription.
Files: data/subscription/seat-control.json, data/subscription/seat-control.csv, schema/subscription/seat-control.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
generation | integer | integer | |
revoked | boolean | boolean | |
reserved_seats | integer or null | integer | |
effective_at | string (date-time) or null | timestamp(3) with time zone |
subscription.apple-status
Subscription state as the App Store reported it: seats, paid until, grace, revoked.
Files: data/subscription/apple-status.json, data/subscription/apple-status.csv, schema/subscription/apple-status.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
revision | string (decimal text) | bigint | |
transaction_id | string | text | |
capacity | integer | integer | |
paid_until | string (date-time) | timestamp with time zone | |
grace_until | string (date-time) or null | timestamp with time zone | |
revoked | boolean | boolean | |
scheduled_capacity | integer or null | integer | |
scheduled_at | string (date-time) or null | timestamp with time zone | |
needs_reconciliation | boolean | boolean | |
verified_at | string (date-time) | timestamp with time zone |
subscription.apple-bindings
The App Store purchase bound to the company.
Files: data/subscription/apple-bindings.json, data/subscription/apple-bindings.csv, schema/subscription/apple-bindings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
purchaser_id | string | text | Refers to team.accounts.id. |
catalog_hash | string | text | Refers to platform_apple.catalog, not part of the export. |
bundle_id | string | text | |
environment | string | text | One of Sandbox, Production. |
original_transaction_id | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
subscription.apple-transactions
Every App Store transaction reported for the company.
Files: data/subscription/apple-transactions.json, data/subscription/apple-transactions.csv, schema/subscription/apple-transactions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
transaction_id | string | text | |
fact | any JSON | jsonb | |
signed_date | string (decimal text) | bigint |
subscription.apple-renewals
Renewal information reported by the App Store.
Files: data/subscription/apple-renewals.json, data/subscription/apple-renewals.csv, schema/subscription/apple-renewals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
binding_id | string (uuid) | uuid | Refers to subscription.apple-bindings.id. |
fact | any JSON | jsonb | |
signed_date | string (decimal text) | bigint |
subscription.apple-purchase-intents
Purchases started in the app.
Files: data/subscription/apple-purchase-intents.json, data/subscription/apple-purchase-intents.csv, schema/subscription/apple-purchase-intents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to platform_apple.purchase_context, not part of the export. |
purchaser_id | string | text | Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
product_id | string | text | |
catalog_hash | string | text | Refers to platform_apple.catalog, not part of the export. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expires_at | string (date-time) | timestamp with time zone | |
terms_version | string or null | text | The version of the terms of use the purchase screen showed, named by its publication date; empty for an app that did not send it. |
dpa_version | string or null | text | The version of the data processing agreement the purchase screen showed, named by its publication date; empty for an app that did not send it. |
subscription.operator-grants
Access granted by SwiftLabs without a purchase, with seats and end date.
Files: data/subscription/operator-grants.json, data/subscription/operator-grants.csv, schema/subscription/operator-grants.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of internal, sponsored. |
capacity | integer | integer | |
valid_until | string (date-time) or null | timestamp with time zone | |
revoked | boolean | boolean | |
revision | integer | integer | |
reserved_capacity | integer or null | integer | |
effective_at | string (date-time) or null | timestamp with time zone |
subscription.stripe-bindings
Subscriptions from the web payment provider.
Files: data/subscription/stripe-bindings.json, data/subscription/stripe-bindings.csv, schema/subscription/stripe-bindings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
namespace | string | text | |
subscription_id | string | text | |
customer_id | string | text | |
terminal | boolean | boolean | |
last_invoice | string or null | text | |
paid_until | string (date-time) or null | timestamp with time zone | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
item | string | text | One of solo, starter, team, growth, pro. |
country | string | text | |
catalog_version | integer | integer | |
cancel_at_period_end | boolean | boolean | |
schedule_id | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
ended_at | string (date-time) or null | timestamp with time zone |
subscription.complimentary-access
Access SwiftLabs granted without a purchase: reason, seat limit, end, and when it was granted or revoked.
Files: data/subscription/complimentary-access.json, data/subscription/complimentary-access.csv, schema/subscription/complimentary-access.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
reason | string | text | |
seat_limit | integer | integer | |
ends_at | string (date-time) or null | timestamp(3) with time zone | When the access ends; empty when it has no end. |
granted_at | string (date-time) | timestamp(3) with time zone | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
revoked_at | string (date-time) or null | timestamp(3) with time zone | When it was revoked; it stays for the record. |
revoke_reason | string or null | text | |
revision | integer | integer |
subscription.apple-sandbox
Marks a company whose App Store purchases come from Apple's test environment (Sandbox), not from a paid subscription.
Files: data/subscription/apple-sandbox.json, data/subscription/apple-sandbox.csv, schema/subscription/apple-sandbox.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
subscription.cloud-status
miphu Cloud storage as the App Store reported it: product and bytes, paid until, grace, revoked, a scheduled change.
Files: data/subscription/cloud-status.json, data/subscription/cloud-status.csv, schema/subscription/cloud-status.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to subscription.cloud-bindings.company_id. |
revision | string (decimal text) | bigint | |
transaction_id | string | text | |
product_id | string | text | |
bytes | string (decimal text) | bigint | |
paid_until | string (date-time) | timestamp with time zone | |
grace_until | string (date-time) or null | timestamp with time zone | |
revoked | boolean | boolean | |
auto_renew | boolean or null | boolean | |
scheduled_product_id | string or null | text | |
scheduled_bytes | string (decimal text) or null | bigint | |
scheduled_at | string (date-time) or null | timestamp with time zone | |
facts | any JSON | jsonb | |
verified_at | string (date-time) | timestamp with time zone |
subscription.cloud-bindings
The App Store miphu Cloud purchase bound to the company.
Files: data/subscription/cloud-bindings.json, data/subscription/cloud-bindings.csv, schema/subscription/cloud-bindings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to platform_apple.cloud_context, not part of the export. |
purchaser_id | string | text | Refers to team.accounts.id. |
catalog_hash | string | text | Refers to platform_apple.cloud_catalog, not part of the export. |
bundle_id | string | text | |
environment | string | text | One of Sandbox, Production. |
original_transaction_id | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
subscription.cloud-purchase-intents
miphu Cloud purchases started in the app.
Files: data/subscription/cloud-purchase-intents.json, data/subscription/cloud-purchase-intents.csv, schema/subscription/cloud-purchase-intents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to platform_apple.cloud_context, not part of the export. |
purchaser_id | string | text | Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
product_id | string | text | |
catalog_hash | string | text | Refers to platform_apple.cloud_catalog, not part of the export. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expires_at | string (date-time) | timestamp with time zone |
subscription.stripe-cloud
miphu Cloud storage bought on the web: tier, paid until, revoked, a change at the period end.
Files: data/subscription/stripe-cloud.json, data/subscription/stripe-cloud.csv, schema/subscription/stripe-cloud.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to subscription.stripe-bindings.company_id. |
item | string | text | One of cloud_500gb, cloud_2tb, cloud_5tb. |
catalog_version | integer | integer | |
country | string | text | |
paid_until | string (date-time) | timestamp with time zone | |
last_invoice | string | text | |
revoked | boolean | boolean | |
scheduled_item | string or null | text | One of cloud_500gb, cloud_2tb, none. |
scheduled_at | string (date-time) or null | timestamp with time zone | |
revision | string (decimal text) | bigint |
subscription.stripe-changes
Package, storage and cancellation changes requested on the web, with their outcome.
Files: data/subscription/stripe-changes.json, data/subscription/stripe-changes.csv, schema/subscription/stripe-changes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
kind | string | text | One of package, cloud, cancel, resume. |
target | string or null | text | One of solo, starter, team, growth, pro, cloud_500gb, cloud_2tb, cloud_5tb. |
state | string | text | One of open, applied, failed. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
decided_at | string (date-time) or null | timestamp with time zone |
company.modules
Which modules the company switched on (articles), since when and by whom.
Files: data/company/modules.json, data/company/modules.csv, schema/company/modules.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
module | string | text | One of artikel, lager, warenwirtschaft, dokumente, zeiterfassung, fertigung, qualitaet, leads, verguetung, buchhaltung, buchfuehrung. |
enabled | boolean | boolean | |
enabled_at | string (date-time) or null | timestamp(3) with time zone | |
changed_at | string (date-time) or null | timestamp(3) with time zone | |
changed_by | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
company.module-requests
Requests that switched a module.
Files: data/company/module-requests.json, data/company/module-requests.csv, schema/company/module-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.settings
Article numbering (prefix, digits, next number) and whether documents print the article number.
Files: data/inventory/settings.json, data/inventory/settings.csv, schema/inventory/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
sku_auto | boolean | boolean | |
sku_prefix | string | text | |
sku_digits | integer | smallint | |
sku_next | string (decimal text) | bigint | |
print_sku | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
base_language | string or null | text |
inventory.tax-classes
Tax groups: category, rate and legal reason an article's lines take.
Files: data/inventory/tax-classes.json, data/inventory/tax-classes.csv, schema/inventory/tax-classes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
tax_category | string | text | One of STANDARD, ZERO, EXEMPT, REVERSE_CHARGE, TAXABLE, NON_TAXABLE. |
tax_rate | string (decimal text) or null | numeric(7,4) | |
tax_reason | string or null | text | |
is_default | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.categories
The article category tree.
Files: data/inventory/categories.json, data/inventory/categories.csv, schema/inventory/categories.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
parent_id | string (uuid) or null | uuid | |
name | string | text | |
depth | integer | smallint | |
sort_rank | integer or null | integer | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.attributes
The company's own article properties (Merkmale): key, label, type, unit, category, required.
Files: data/inventory/attributes.json, data/inventory/attributes.csv, schema/inventory/attributes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
key | string | text | |
label | string | text | |
value_type | string | text | One of text, number, boolean, date, select, multiselect. |
unit_code | string or null | text | Refers to platform_article.unit, not part of the export. |
decimals | integer or null | smallint | |
category_id | string (uuid) or null | uuid | |
required | boolean | boolean | |
filterable | boolean | boolean | |
sort_rank | integer or null | integer | |
version | integer | integer | Revision counter; rises with every change. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
shop_visible | boolean | boolean |
inventory.attribute-options
The choices of select and multi-select properties.
Files: data/inventory/attribute-options.json, data/inventory/attribute-options.csv, schema/inventory/attribute-options.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
attribute_id | string (uuid) | uuid | |
label | string | text | |
sort_rank | integer or null | integer | |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.articles
Articles: number, name, description, type, unit, sales and purchase price, tax group, category.
Files: data/inventory/articles.json, data/inventory/articles.csv, schema/inventory/articles.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
sku | string | text | |
name | string | text | |
description | string or null | text | |
kind | string | text | One of product, service. |
unit_code | string | text | Refers to platform_article.unit, not part of the export. |
sales_price | string (decimal text) or null | numeric(24,6) | |
currency | string | text | |
tax_class_id | string (uuid) | uuid | |
purchase_price | string (decimal text) or null | numeric(24,6) | |
category_id | string (uuid) or null | uuid | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
bom_mode | string | text | One of none, kit, assembly. |
price_mode | string | text | One of fixed, components. |
stock_tracked | boolean | boolean | |
tracking | string | text | One of none, batch, serial. |
list_initial | string or null | text | The letter the record files under in the A–Z index of its list, derived from its name. |
variant_role | string | text | One of single, parent, variant. |
variant_parent_id | string (uuid) or null | uuid | |
variant_key | string or null | text | A variant's combination: per axis the option id or, on a number axis, n: and the value in the attribute's unit, comma-separated in axis order. |
variant_own | array | text[] | |
shop_published | boolean | boolean | |
brand | string or null | text | |
mpn | string or null | text | |
weight_kg | string (decimal text) or null | numeric(12,4) | |
length_cm | string (decimal text) or null | numeric(10,2) | |
width_cm | string (decimal text) or null | numeric(10,2) | |
height_cm | string (decimal text) or null | numeric(10,2) | |
hs_code | string or null | text | |
origin_country | string or null | text | |
condition | string | text | One of new, used, refurbished. |
unit_id | string (uuid) or null | uuid | The company's own unit (inventory.units id); empty for a standard unit. unit_code is then that unit's code. |
sold | boolean | boolean | Whether the article is sold; false for raw material, packaging and consumables. sales_price is empty only where it is false (or the price comes from the bill of materials). |
external_id | string or null | text | The article's number in the system it came from, when it is not the item number; unique in the company without regard to case. |
inventory.codes
Barcodes and GTINs of articles, with the quantity one scan counts.
Files: data/inventory/codes.json, data/inventory/codes.csv, schema/inventory/codes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
code | string | text | |
symbology | string | text | One of gtin, code128, qr, datamatrix, other. |
pack_quantity | string (decimal text) | numeric(18,6) | |
primary | boolean | boolean | |
article_unit_id | string (uuid) or null | uuid | The further unit the code belongs to (inventory.article-units id); one scan then counts its factor. |
inventory.attribute-values
The property values of each article.
Files: data/inventory/attribute-values.json, data/inventory/attribute-values.csv, schema/inventory/attribute-values.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
attribute_id | string (uuid) | uuid | |
text_value | string or null | text | |
number_value | string (decimal text) or null | numeric(24,6) | |
bool_value | boolean or null | boolean | |
date_value | string (date) or null | date | |
option_ids | array or null | uuid[] | |
unit_code | string or null | text | The unit a number value was entered in, when it is not the property's own unit (inventory.attributes unit_code). Refers to platform_article.unit, not part of the export. |
inventory.article-usage
Which quotes, orders and invoices name an article, and whether that document was issued.
Files: data/inventory/article-usage.json, data/inventory/article-usage.csv, schema/inventory/article-usage.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
document_kind | string | text | One of quote, order, invoice. |
document_id | string | text | |
issued | boolean | boolean |
inventory.requests
Requests that changed articles and their catalogues.
Files: data/inventory/requests.json, data/inventory/requests.csv, schema/inventory/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
target_id | string or null | text | |
applied_version | integer or null | integer | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
team.invitations
Invitations to join the company: address, name, role and rights offered, state, who invited and when.
Files: data/team/invitations.json, data/team/invitations.csv, schema/team/invitations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
account_id | string | text | Refers to team.accounts.id. |
email | string | text | |
name | string | text | |
given_name | string or null | text | |
family_name | string or null | text | |
role | string | text | One of admin, member. |
crm | boolean | boolean | |
finance | boolean | boolean | |
planning | boolean | boolean | |
state | string | text | One of open, withdrawn, accepted. |
version | integer | integer | Revision counter; rises with every change. |
invited_by | string | text | Refers to team.accounts.id. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
accepted_at | string (date-time) or null | timestamp(3) with time zone | |
articles | boolean | boolean | Whether the membership the invitation creates may maintain articles; applied when it is accepted. |
stock | boolean | boolean | Whether the membership the invitation creates may post stock; applied when it is accepted. |
purchasing | boolean | boolean | Whether the membership the invitation creates may purchase; applied when it is accepted. |
personnel | boolean | boolean | Whether the membership the invitation creates may keep personnel records and leave entitlements; applied when it is accepted. |
production | boolean | boolean | |
quality | boolean | boolean | |
quality_release | boolean | boolean |
inventory.bill-of-materials
Bills of materials: which components, in which quantity, make up a kit or an assembly.
Files: data/inventory/bill-of-materials.json, data/inventory/bill-of-materials.csv, schema/inventory/bill-of-materials.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
parent_id | string (uuid) | uuid | |
component_id | string (uuid) | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
position | integer | integer | |
note | string or null | text |
inventory.stock-settings
Stock settings: whether stock may go below zero, whether issued invoices take goods out of stock, the default warehouse.
Files: data/inventory/stock-settings.json, data/inventory/stock-settings.csv, schema/inventory/stock-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
allow_negative | boolean | boolean | |
invoice_issues_stock | boolean | boolean | |
default_warehouse_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.warehouses
Warehouses: code and name.
Files: data/inventory/warehouses.json, data/inventory/warehouses.csv, schema/inventory/warehouses.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
code | string | text | |
name | string | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.locations
Places in each warehouse (the warehouse itself and its bins), with code, name and whether a bin is blocked.
Files: data/inventory/locations.json, data/inventory/locations.csv, schema/inventory/locations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
warehouse_id | string (uuid) | uuid | |
kind | string | text | One of root, bin. |
code | string or null | text | |
name | string or null | text | |
blocked | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.lots
Batches and serial numbers of articles.
Files: data/inventory/lots.json, data/inventory/lots.csv, schema/inventory/lots.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
kind | string | text | One of batch, serial. |
code | string | text | |
expires_on | string (date) or null | date | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
form | string or null | text | One of quader, l_form, rund, ohne. |
laenge_mm | integer or null | integer | |
breite_mm | integer or null | integer | |
dicke_mm | string (decimal text) or null | numeric(5,1) | |
durchmesser_mm | string (decimal text) or null | numeric(5,1) | |
ausschnitt_laenge_mm | integer or null | integer | |
ausschnitt_breite_mm | integer or null | integer |
inventory.stock-movements
The stock ledger: every movement with kind, article, place, quantity, cost in the company's currency, date, source, reason and who posted it.
Files: data/inventory/stock-movements.json, data/inventory/stock-movements.csv, schema/inventory/stock-movements.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
group_id | string (uuid) | uuid | |
kind | string | text | One of opening, receipt, issue, transfer, correction, count, return_in, return_out, assembly_consume, assembly_produce, receipt_reversal, production_consume, production_produce. |
article_id | string (uuid) | uuid | |
location_id | string (uuid) | uuid | |
lot_id | string (uuid) or null | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
unit_cost | string (decimal text) | numeric(28,10) | |
value | string (decimal text) | numeric(28,6) | |
avg_cost_after | string (decimal text) | numeric(28,10) | |
on_hand_after | string (decimal text) | numeric(18,6) | |
occurred_on | string (date) | date | |
recorded_at | string (date-time) | timestamp(3) with time zone | |
source_type | string | text | One of manual, import, receipt, delivery, invoice, count, assembly, production, quality. |
source_id | string or null | text | |
source_line | string or null | text | |
reason | string or null | text | |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
inventory.stock-balances
On hand per article, place and batch or serial number.
Files: data/inventory/stock-balances.json, data/inventory/stock-balances.csv, schema/inventory/stock-balances.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
location_id | string (uuid) | uuid | |
lot_id | string (uuid) or null | uuid | |
on_hand | string (decimal text) | numeric(18,6) | |
last_seq | string (decimal text) | bigint |
inventory.article-stock
Per article: on hand, blocked, reserved, on order, stock value and moving average cost.
Files: data/inventory/article-stock.json, data/inventory/article-stock.csv, schema/inventory/article-stock.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
on_hand | string (decimal text) | numeric(18,6) | |
blocked | string (decimal text) | numeric(18,6) | |
reserved | string (decimal text) | numeric(18,6) | |
incoming | string (decimal text) | numeric(18,6) | |
value | string (decimal text) | numeric(28,6) | |
avg_cost | string (decimal text) | numeric(28,10) | |
version | string (decimal text) | bigint | Revision counter; rises with every change. |
inventory.reorder-rules
Reorder rules: reorder point, reorder quantity and maximum level per article and warehouse.
Files: data/inventory/reorder-rules.json, data/inventory/reorder-rules.csv, schema/inventory/reorder-rules.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
warehouse_id | string (uuid) or null | uuid | |
reorder_point | string (decimal text) | numeric(18,6) | |
reorder_quantity | string (decimal text) | numeric(18,6) | |
max_level | string (decimal text) or null | numeric(18,6) | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.invoice-stock-issues
Which issued invoices took goods out of stock, and which lines were left out and why.
Files: data/inventory/invoice-stock-issues.json, data/inventory/invoice-stock-issues.csv, schema/inventory/invoice-stock-issues.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
invoice_id | string | text | |
status | string | text | One of posted, nothing, skipped_disabled, skipped_setting. |
group_id | string (uuid) or null | uuid | |
skipped_lines | any JSON | jsonb | |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.stock-requests
Requests that changed the stock and its settings.
Files: data/inventory/stock-requests.json, data/inventory/stock-requests.csv, schema/inventory/stock-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.suppliers
Supplier profiles of business partners: our customer number there, currency, payment and lead time, minimum order value.
Files: data/inventory/suppliers.json, data/inventory/suppliers.csv, schema/inventory/suppliers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
customer_id | string | text | |
our_customer_number | string or null | text | |
currency | string or null | text | |
payment_days | integer or null | smallint | |
lead_days | integer or null | smallint | |
min_order_value | string (decimal text) or null | numeric(24,6) | |
note | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
external_id | string or null | text | The supplier's own number in the system it came from (its supplier or creditor number), not its partner's; unique in the company without regard to case. |
inventory.supplier-articles
Per supplier and article: the supplier's article number, price, purchase unit and pack factor, minimum quantity, lead time, preferred supplier.
Files: data/inventory/supplier-articles.json, data/inventory/supplier-articles.csv, schema/inventory/supplier-articles.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
customer_id | string | text | |
article_id | string (uuid) | uuid | |
supplier_sku | string or null | text | |
purchase_price | string (decimal text) or null | numeric(24,6) | |
currency | string or null | text | |
purchase_unit_code | string | text | Refers to platform_article.unit, not part of the export. |
pack_factor | string (decimal text) | numeric(18,6) | |
min_quantity | string (decimal text) or null | numeric(18,6) | |
lead_days | integer or null | smallint | |
preferred | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.purchase-numbers
The next numbers of purchase orders and goods receipts.
Files: data/inventory/purchase-numbers.json, data/inventory/purchase-numbers.csv, schema/inventory/purchase-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of purchase_order, receipt. |
next | string (decimal text) | bigint |
inventory.purchase-orders
Purchase orders: supplier, warehouse, stage, currency, language, dates, closing text, the frozen snapshot and PDF.
Files: data/inventory/purchase-orders.json, data/inventory/purchase-orders.csv, schema/inventory/purchase-orders.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
seq | string (decimal text) | bigint | |
supplier_id | string | text | |
warehouse_id | string (uuid) | uuid | |
status | string | text | One of draft, ordered, partially_received, received, closed, cancelled. |
currency | string | text | |
language | string or null | text | One of de, en, fr, es, it, pt-BR, ja, ko, nl, pl. |
expected_on | string (date) or null | date | |
ordered_on | string (date) or null | date | |
closing_text | string or null | text | |
end_reason | string or null | text | |
origin | string | text | One of manual, reorder. |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
ordered_by | string or null | text | |
ordered_at | string (date-time) or null | timestamp(3) with time zone | |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
inventory.purchase-order-lines
Purchase-order lines: article, description, quantity, unit and pack factor, price, tax, received and closed quantities.
Files: data/inventory/purchase-order-lines.json, data/inventory/purchase-order-lines.csv, schema/inventory/purchase-order-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
order_id | string (uuid) | uuid | |
position | integer | smallint | |
article_id | string (uuid) or null | uuid | |
description | string | text | |
supplier_sku | string or null | text | |
quantity | string (decimal text) | numeric(18,6) | |
purchase_unit_code | string | text | Refers to platform_article.unit, not part of the export. |
pack_factor | string (decimal text) | numeric(18,6) | |
stock_quantity | string (decimal text) or null | numeric(18,6) | |
unit_price | string (decimal text) or null | numeric(24,6) | |
discount_percent | string (decimal text) | numeric(7,4) | |
tax_category | string | text | One of STANDARD, ZERO, EXEMPT, REVERSE_CHARGE, TAXABLE, NON_TAXABLE. |
tax_rate | string (decimal text) | numeric(7,4) | |
tax_reason | string or null | text | |
expected_on | string (date) or null | date | |
receivable | boolean | boolean | |
received_quantity | string (decimal text) | numeric(18,6) | |
closed_quantity | string (decimal text) | numeric(18,6) |
inventory.goods-receipts
Goods receipts: supplier, purchase order, warehouse, date, the supplier's delivery note number, stage, stock movement groups.
Files: data/inventory/goods-receipts.json, data/inventory/goods-receipts.csv, schema/inventory/goods-receipts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
seq | string (decimal text) | bigint | |
supplier_id | string or null | text | |
purchase_order_id | string (uuid) or null | uuid | |
warehouse_id | string (uuid) | uuid | |
supplier_delivery_note | string or null | text | |
received_on | string (date) | date | |
status | string | text | One of draft, posted, cancelled. |
group_id | string (uuid) or null | uuid | |
reversal_group_id | string (uuid) or null | uuid | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
posted_by | string or null | text | |
posted_at | string (date-time) or null | timestamp(3) with time zone | |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
inventory.goods-receipt-lines
Goods-receipt lines: article, place, quantity, unit cost, over-receipt, returned to the supplier, the batches or serial numbers named.
Files: data/inventory/goods-receipt-lines.json, data/inventory/goods-receipt-lines.csv, schema/inventory/goods-receipt-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
receipt_id | string (uuid) | uuid | |
position | integer | smallint | |
po_line_id | string (uuid) or null | uuid | |
article_id | string (uuid) | uuid | |
location_id | string (uuid) | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
unit_cost | string (decimal text) or null | numeric(28,10) | |
over_receipt | boolean | boolean | |
returned_quantity | string (decimal text) | numeric(18,6) | |
reopened_quantity | string (decimal text) | numeric(18,6) | |
lots | any JSON | jsonb | The batches (chargen: code, expiry, quantity) or serial numbers (seriennummern) the line named, and for a kit or an assembly its components' (komponenten). Empty when it named none. |
inventory.expense-links
Which expenses (supplier invoices) belong to which goods receipts and purchase orders.
Files: data/inventory/expense-links.json, data/inventory/expense-links.csv, schema/inventory/expense-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
expense_id | string (uuid) | uuid | |
receipt_id | string (uuid) or null | uuid | |
purchase_order_id | string (uuid) or null | uuid | |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.purchase-requests
Requests that changed suppliers, purchase orders and goods receipts.
Files: data/inventory/purchase-requests.json, data/inventory/purchase-requests.csv, schema/inventory/purchase-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.order-lines
The positions of confirmed orders: article, quantity, unit, whether a delivery note carries them, delivered, returned, reopened and closed quantities.
Files: data/inventory/order-lines.json, data/inventory/order-lines.csv, schema/inventory/order-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
order_id | string (uuid) | uuid | |
position_id | string | text | |
position | integer | smallint | |
article_id | string (uuid) or null | uuid | |
description | string | text | |
quantity | string (decimal text) | numeric(18,6) | |
unit | string or null | text | |
unit_code | string or null | text | |
deliverable | boolean | boolean | |
skip_reason | string or null | text | One of service, unit_mismatch, quantity, article_missing. |
delivered | string (decimal text) | numeric(18,6) | |
returned | string (decimal text) | numeric(18,6) | |
reopened | string (decimal text) | numeric(18,6) | |
closed | string (decimal text) | numeric(18,6) | |
close_reason | string or null | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
factor | string (decimal text) | numeric(18,6) | How many of the article's unit one unit of the line holds, as the order was confirmed; stock moves quantity × factor. |
inventory.reservations
What confirmed orders promise per article and warehouse, and when and why a promise was released.
Files: data/inventory/reservations.json, data/inventory/reservations.csv, schema/inventory/reservations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
warehouse_id | string (uuid) | uuid | |
order_id | string (uuid) | uuid | |
position_id | string | text | |
quantity_open | string (decimal text) | numeric(18,6) | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
released_at | string (date-time) or null | timestamp(3) with time zone | When the reservation was released. |
release_reason | string or null | text | One of fulfilled, order_completed, order_cancelled, module_disabled, article_changed. |
inventory.delivery-numbers
The next number of delivery notes.
Files: data/inventory/delivery-numbers.json, data/inventory/delivery-numbers.csv, schema/inventory/delivery-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | |
next | string (decimal text) | bigint |
inventory.delivery-notes
Delivery notes: order, customer, warehouse, stage, ship-to address, language, note, delivery day, stock movement group, the frozen snapshot and PDF.
Files: data/inventory/delivery-notes.json, data/inventory/delivery-notes.csv, schema/inventory/delivery-notes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
seq | string (decimal text) | bigint | |
order_id | string (uuid) or null | uuid | |
customer_id | string | text | |
warehouse_id | string (uuid) | uuid | |
status | string | text | One of draft, shipped, cancelled. |
ship_to | any JSON | jsonb | |
language | string or null | text | One of de, en, fr, es, it, pt-BR, ja, ko, nl, pl. |
note | string or null | text | |
shipped_on | string (date) or null | date | |
group_id | string (uuid) or null | uuid | |
cancel_reason | string or null | text | |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
shipped_by | string or null | text | |
shipped_at | string (date-time) or null | timestamp(3) with time zone | |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
inventory.delivery-note-lines
Delivery-note lines: order position, article, description, quantity, unit, place, returned quantity, the batches or serial numbers named.
Files: data/inventory/delivery-note-lines.json, data/inventory/delivery-note-lines.csv, schema/inventory/delivery-note-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
delivery_id | string (uuid) | uuid | |
position | integer | smallint | |
order_id | string (uuid) or null | uuid | |
position_id | string or null | text | |
article_id | string (uuid) | uuid | |
description | string | text | |
quantity | string (decimal text) | numeric(18,6) | |
unit | string or null | text | |
unit_code | string | text | |
location_id | string (uuid) | uuid | |
returned | string (decimal text) | numeric(18,6) | |
lots | any JSON | jsonb | The batches (chargen: code, expiry, quantity) or serial numbers (seriennummern) the line named, and for a kit or an assembly its components' (komponenten). Empty when it named none. |
factor | string (decimal text) | numeric(18,6) | How many of the article's unit one unit of the line holds; stock moves quantity × factor. |
inventory.order-invoice-lines
Which invoice line came from which order position, and from which delivery note.
Files: data/inventory/order-invoice-lines.json, data/inventory/order-invoice-lines.csv, schema/inventory/order-invoice-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
invoice_id | string | text | |
invoice_line_id | string | text | |
order_id | string (uuid) | uuid | |
position_id | string | text | |
delivery_id | string (uuid) or null | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.delivery-requests
Requests that changed delivery notes, closed order rests or made invoices from orders.
Files: data/inventory/delivery-requests.json, data/inventory/delivery-requests.csv, schema/inventory/delivery-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.stock-count-numbers
The next number of stocktakings.
Files: data/inventory/stock-count-numbers.json, data/inventory/stock-count-numbers.csv, schema/inventory/stock-count-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | |
next | string (decimal text) | bigint |
inventory.stock-counts
Stocktakings: warehouse, places and categories counted, blind or not, stage, language, note, start, reporting date, who posted it, stock movement group, the frozen list and its PDF.
Files: data/inventory/stock-counts.json, data/inventory/stock-counts.csv, schema/inventory/stock-counts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
seq | string (decimal text) | bigint | |
warehouse_id | string (uuid) | uuid | |
location_ids | array | uuid[] | |
category_ids | array | uuid[] | |
blind | boolean | boolean | |
status | string | text | One of draft, counting, review, posted, cancelled. |
language | string or null | text | One of de, en, fr, es, it, pt-BR, ja, ko. |
note | string or null | text | |
started_at | string (date-time) or null | timestamp(3) with time zone | |
started_on | string (date) or null | date | |
counted_on | string (date) or null | date | |
group_id | string (uuid) or null | uuid | |
posted_at | string (date-time) or null | timestamp(3) with time zone | |
posted_by | string or null | text | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancel_reason | string or null | text | |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
content_hash | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
inventory.stock-count-lines
Stocktaking lines: article, place, the quantity expected when counting started, whether it was found unexpectedly, the counting round.
Files: data/inventory/stock-count-lines.json, data/inventory/stock-count-lines.csv, schema/inventory/stock-count-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
count_id | string (uuid) | uuid | |
article_id | string (uuid) | uuid | |
location_id | string (uuid) | uuid | |
lot_id | string (uuid) or null | uuid | |
book_at_start | string (decimal text) | numeric(18,6) | |
unexpected | boolean | boolean | |
round | integer | smallint | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.stock-count-entries
Counting entries: line, round, counted quantity, book quantity and last stock movement at that moment, who counted, device, request id, time.
Files: data/inventory/stock-count-entries.json, data/inventory/stock-count-entries.csv, schema/inventory/stock-count-entries.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
count_id | string (uuid) | uuid | |
line_id | string (uuid) | uuid | |
round | integer | smallint | |
quantity | string (decimal text) | numeric(18,6) | |
book_at_entry | string (decimal text) | numeric(18,6) | |
seq_at_entry | string (decimal text) | bigint | |
entered_by | string | text | |
device | string or null | text | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
entered_at | string (date-time) | timestamp(3) with time zone |
inventory.stock-count-requests
Requests that changed stocktakings.
Files: data/inventory/stock-count-requests.json, data/inventory/stock-count-requests.csv, schema/inventory/stock-count-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.assembly-numbers
The next number of assemblies.
Files: data/inventory/assembly-numbers.json, data/inventory/assembly-numbers.csv, schema/inventory/assembly-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | |
next | string (decimal text) | bigint |
inventory.assemblies
Assemblies and disassemblies: article, quantity, places, stage, the assembly a disassembly reverses, date, stock movement group, value, who posted it, the batches or serial numbers named.
Files: data/inventory/assemblies.json, data/inventory/assemblies.csv, schema/inventory/assemblies.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
seq | string (decimal text) | bigint | |
article_id | string (uuid) | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
location_id | string (uuid) | uuid | |
target_location_id | string (uuid) | uuid | |
status | string | text | One of draft, posted, cancelled. |
reversal_of | string (uuid) or null | uuid | |
note | string or null | text | |
occurred_on | string (date) or null | date | |
group_id | string (uuid) or null | uuid | |
value | string (decimal text) or null | numeric(28,6) | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
posted_by | string or null | text | |
posted_at | string (date-time) or null | timestamp(3) with time zone | |
lots | any JSON | jsonb | The batches (chargen: code, expiry, quantity) or serial numbers (seriennummern) the line named, and for a kit or an assembly its components' (komponenten). Empty when it named none. |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
inventory.assembly-requests
Requests that changed assemblies.
Files: data/inventory/assembly-requests.json, data/inventory/assembly-requests.csv, schema/inventory/assembly-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.variant-axes
The axes of variant parents: which select attributes (up to three, in order) tell their variants apart.
Files: data/inventory/variant-axes.json, data/inventory/variant-axes.csv, schema/inventory/variant-axes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
parent_id | string (uuid) | uuid | |
attribute_id | string (uuid) | uuid | |
position | integer | smallint |
inventory.article-texts
Texts of articles per language (BCP 47): name, short and long description (Markdown) for shops and documents in that language.
Files: data/inventory/article-texts.json, data/inventory/article-texts.csv, schema/inventory/article-texts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
language | string | text | |
name | string or null | text | |
short_description | string or null | text | |
long_description | string or null | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.article-images
Article images: the stored file, position (0 is the main image), alternative texts per language, shown in the shop.
Files: data/inventory/article-images.json, data/inventory/article-images.csv, schema/inventory/article-images.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
file_id | string (uuid) | uuid | |
position | integer | smallint | |
alt_text | any JSON | jsonb | |
shop_visible | boolean | boolean | |
width | integer or null | integer | |
height | integer or null | integer | |
published_at | string (date-time) or null | timestamp(3) with time zone | |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
file | object or null | file | The image file under files/article-images/<article>/<position>-<file>.<extension>. Empty while the file is not accepted. |
inventory.shop-countries
The countries the company sells to through a shop: currency and whether prices there include tax.
Files: data/inventory/shop-countries.json, data/inventory/shop-countries.csv, schema/inventory/shop-countries.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
country | string | text | |
currency | string | text | |
prices_include_tax | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.shop-country-rates
The consumer tax rate of each tax group in each shop country, as the company entered it.
Files: data/inventory/shop-country-rates.json, data/inventory/shop-country-rates.csv, schema/inventory/shop-country-rates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
country | string | text | |
tax_class_id | string (uuid) | uuid | |
rate | string (decimal text) | numeric(7,4) |
inventory.shop-country-prices
Explicit shop prices of articles per country, with or without tax.
Files: data/inventory/shop-country-prices.json, data/inventory/shop-country-prices.csv, schema/inventory/shop-country-prices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
country | string | text | |
price | string (decimal text) | numeric(24,6) | |
includes_tax | boolean | boolean |
inventory.product-feeds
Product-feed keys: name, countries, languages, warehouses and what availability they show, created, revoked and last used; never the key.
Files: data/inventory/product-feeds.json, data/inventory/product-feeds.csv, schema/inventory/product-feeds.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
countries | array | text[] | |
languages | array | text[] | |
warehouse_ids | array | uuid[] | |
availability_mode | string | text | One of state, quantity. |
low_stock_threshold | string (decimal text) | numeric(18,6) | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
revoked_by | string or null | text | |
revoked_at | string (date-time) or null | timestamp(3) with time zone | When it was revoked; it stays for the record. |
last_used_at | string (date-time) or null | timestamp(3) with time zone |
inventory.shop-requests
Requests that changed shop countries and product-feed keys.
Files: data/inventory/shop-requests.json, data/inventory/shop-requests.csv, schema/inventory/shop-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.product-image-settings
Whether the company publishes its product images, and the random name its public image addresses use.
Files: data/inventory/product-image-settings.json, data/inventory/product-image-settings.csv, schema/inventory/product-image-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
public_id | string | text | |
publishing | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text | Refers to team.accounts.id. |
company.invoice-series-counters
Number series beside the running invoice series until 1.52: the series of corrections (credit_note) and yearly series, with the year (0 = running) and the next number. Since 1.52 every series counts in company.number-counters.
Files: data/company/invoice-series-counters.json, data/company/invoice-series-counters.csv, schema/company/invoice-series-counters.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of invoice, credit_note. |
year | integer | smallint | |
next_number | string (decimal text) | bigint | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
company.first-steps
Who closed the first-steps card of the apps in this company, and when.
Files: data/company/first-steps.json, data/company/first-steps.csv, schema/company/first-steps.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
account_id | string | text | |
hidden_at | string (date-time) | timestamp(3) with time zone | When the person closed the card. |
company.document-prefixes
The prefixes the company set for the numbers of its quotes, orders, delivery notes, purchase orders, goods receipts, stock counts and assemblies; an empty column follows the default of the company's document language. A number already given keeps its prefix (number_prefix of its record; a quote's number is stored when it is issued). Since 1.52 also the numbering format (period) and the start values (starts); a prefix is stored with the first number of its kind.
Files: data/company/document-prefixes.json, data/company/document-prefixes.csv, schema/company/document-prefixes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
quote | string or null | text | The company's own prefix for new quote numbers; empty: the default of its document language. |
sales_order | string or null | text | The company's own prefix for new order numbers; empty: the default of its document language. |
delivery_note | string or null | text | The company's own prefix for new delivery note numbers; empty: the default of its document language. |
purchase_order | string or null | text | The company's own prefix for new purchase order numbers; empty: the default of its document language. |
goods_receipt | string or null | text | The company's own prefix for new goods receipt numbers; empty: the default of its document language. |
stock_count | string or null | text | The company's own prefix for new stock count numbers; empty: the default of its document language. |
assembly | string or null | text | The company's own prefix for new assembly numbers; empty: the default of its document language. |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text | Account that last changed the prefixes (team.accounts id). |
dunning | string or null | text | The company's own prefix for new payment reminder and dunning notice numbers; empty: the default of its document language. |
production_order | string or null | text | The company's own prefix for new production order numbers; empty: the default of its document language. |
proforma | string or null | text | |
inspection | string or null | text | |
nonconformity | string or null | text | |
certificate | string or null | text | |
period | string | text | The numbering format: year (PREFIX-YYYY-NNNN) or month (PREFIX-YYYY-MM-NNNN); the counter restarts per period. One of year, month. |
starts | any JSON | jsonb | The first counter value of every new period per series (quote, sales_order, …, invoice, credit_note); a series not named starts at 1. |
advance_invoice | string or null | text |
company.number-counters
Since 1.52: the next counter value of every number series per kind and period (YYYY, or YYYY-MM when the company numbers by month). A number is the prefix, the period and the counter with at least four digits (RE-2026-0042, AU-2026-10-0042).
Files: data/company/number-counters.json, data/company/number-counters.csv, schema/company/number-counters.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | The series: invoice, credit_note, quote, sales_order, delivery_note, purchase_order, goods_receipt, stock_count, assembly, dunning, production_order, proforma, inspection, nonconformity or certificate. One of invoice, credit_note, quote, sales_order, delivery_note, purchase_order, goods_receipt, stock_count, assembly, dunning, production_order, proforma, inspection, nonconformity, certificate, advance_invoice. |
period | string | text | The year (YYYY) or month (YYYY-MM) the counter belongs to. |
next | string (decimal text) | bigint | The counter value the next number of this series and period gets. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
documents.files
Stored files: type, size, SHA-256 of the content, check and scan state. The content itself is in the documents that use it.
Files: data/documents/files.json, data/documents/files.csv, schema/documents/files.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
purpose | string | text | One of document, article_image, generated, inbound_mail, export_part, import. |
object_key | string | text | Name of the encrypted object in miphu's storage; no company name or id is in it. Refers to platform_file.object, not part of the export. |
sha256 | string | text | SHA-256 of the file's content, as uploaded and verified. |
byte_length | string (decimal text) | bigint | Size of the content in bytes. |
stored_length | string (decimal text) | bigint | Size of the encrypted object in the storage, in bytes. |
media_type | string | text | |
key_version | integer | integer | |
state | string | text | processing (being checked), available, rejected, quarantined (malware found), or on its way to deletion. One of processing, available, rejected, quarantined, purge_pending, purged. |
reject_code | string or null | text | One of upload_hash_mismatch, format_invalid, format_unsupported. |
risk | array | text[] | Flags of a file kept as received: active_content, encrypted, macro. |
verified_at | string (date-time) or null | timestamp with time zone | |
scan | any JSON | jsonb | The malware check: engine, signature version, result and time. |
scanned_at | string (date-time) or null | timestamp with time zone | |
duplicate_of | string (uuid) or null | uuid | The file with the same content this one was merged into, stored once. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | Refers to team.accounts.id. |
purge_after | string (date-time) or null | timestamp with time zone | |
purged_at | string (date-time) or null | timestamp with time zone | When the file's content was deleted; the row stays for the record. |
documents.file-previews
Preview images derived from stored files: kind, page, size.
Files: data/documents/file-previews.json, data/documents/file-previews.csv, schema/documents/file-previews.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
blob_id | string (uuid) | uuid | |
kind | string | text | One of thumb_256, preview_1280, page_1024, img_640, img_1280, img_2048, img_640_jpeg, img_1280_jpeg, img_2048_jpeg. |
page | integer | integer | |
object_key | string | text | Refers to platform_file.object, not part of the export. |
media_type | string | text | One of image/webp, image/jpeg. |
width | integer | integer | |
height | integer | integer | |
byte_length | integer | integer | |
key_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.file-texts
Text read from stored files, as the search uses it.
Files: data/documents/file-texts.json, data/documents/file-texts.csv, schema/documents/file-texts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
blob_id | string (uuid) | uuid | |
source | string | text | One of plain, xml, email, office, pdf_text, device_ocr, server_ocr. |
language | string or null | text | |
body | string | text | The text; at most 1 MiB, truncated says whether it was cut. |
truncated | boolean | boolean | |
extracted_at | string (date-time) | timestamp with time zone | |
tokens | string or null | text | The text as the search's tokens (words folded to lower case without accents, CJK as character pairs). |
documents.documents
Filed documents: title, Dokumentart, area, retention (class, years, until when, legal hold), restriction, confidentiality, trash, and the receipt fields date, amount, counterparty and reference.
Files: data/documents/documents.json, data/documents/documents.csv, schema/documents/documents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
title | string | text | |
document_type | string | text | The Dokumentart, e.g. invoice_in (received invoice or receipt), contract, correspondence, photo. |
origin | string | text | One of upload, scan, email, ai, generated, imported. |
area | string | text | Who may see it: the area of its home record, or of the document itself when it has none (inbox = Eingang). One of general, crm, finance, task, inventory, purchasing, personnel, inbox. |
confidential | boolean | boolean | |
retention_class | string | text | none, business_letter (6 years in Germany), voucher (8), books (10). |
retention_years | integer or null | smallint | |
retain_until | string (date) or null | date | The last day of the retention period; the document cannot be deleted before. |
legal_hold | boolean | boolean | |
restricted_at | string (date-time) or null | timestamp with time zone | When processing was restricted after an erasure request (Art. 18 GDPR); deleted when the period ends. |
restricted_by | string or null | text | Refers to team.accounts.id. |
restricted_reason | string or null | text | |
document_date | string (date) or null | date | |
amount | string (decimal text) or null | numeric(20,6) | |
currency | string or null | text | |
counterparty | string or null | text | |
reference | string or null | text | |
current_version | integer | integer | |
version | integer | integer | Revision counter; rises with every change. |
source_kind | string or null | text | For issued documents: the kind of record whose file it is. One of invoice_artifact, offer_document, order, expense_original, document_history, delivery, purchase_order, goods_receipt, stock_count, datev_run, books_run, dunning, proforma, quality_certificate. |
source_id | string or null | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | Refers to team.accounts.id. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
trashed_at | string (date-time) or null | timestamp with time zone | When the document was moved to the trash; empty while it is not in the trash. |
trashed_by | string or null | text | Refers to team.accounts.id. |
purge_after | string (date-time) or null | timestamp with time zone |
documents.document-versions
Every stored version of a document: its file, file name, type, size and SHA-256; a restored version names the one it restores.
Files: data/documents/document-versions.json, data/documents/document-versions.csv, schema/documents/document-versions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
document_id | string (uuid) | uuid | |
number | integer | integer | |
blob_id | string (uuid) or null | uuid | The stored file (documents.files); empty for an issued document whose file stays with its record. |
restores | integer or null | integer | |
upload_id | string (uuid) or null | uuid | |
filename | string | text | |
media_type | string | text | |
byte_length | string (decimal text) | bigint | |
sha256 | string | text | |
note | string or null | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | Refers to team.accounts.id. |
source_id | string or null | text | |
file | object or null | file | The bytes of this version under files/documents/<document>/<version>-<name>: the stored file, or for an issued document the bytes its record keeps. Empty while the file is not accepted (in checking, refused, quarantined). |
documents.document-links
The records a document is filed on (Bezüge); one per document is its home.
Files: data/documents/document-links.json, data/documents/document-links.csv, schema/documents/document-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
id | string (uuid) | uuid | |
document_id | string (uuid) | uuid | |
is_home | boolean | boolean | |
lead_id | string or null | text | |
customer_id | string or null | text | |
contact_id | string or null | text | |
task_id | string or null | text | |
quote_id | string or null | text | |
invoice_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
expense_id | string (uuid) or null | uuid | |
person_id | string (uuid) or null | uuid | |
article_id | string (uuid) or null | uuid | |
purchase_order_id | string (uuid) or null | uuid | |
receipt_id | string (uuid) or null | uuid | |
delivery_id | string (uuid) or null | uuid | |
stock_count_id | string (uuid) or null | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | Refers to team.accounts.id. |
documents.document-grants
Who may see a confidential document besides the owner.
Files: data/documents/document-grants.json, data/documents/document-grants.csv, schema/documents/document-grants.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
document_id | string (uuid) | uuid | |
account_id | string | text | |
granted_by | string | text | Refers to team.accounts.id. |
granted_at | string (date-time) | timestamp with time zone |
documents.document-views
Saved filters (personal collections) of the company's people.
Files: data/documents/document-views.json, data/documents/document-views.csv, schema/documents/document-views.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
account_id | string | text | |
id | string (uuid) | uuid | |
name | string | text | |
filter | any JSON | jsonb | |
sort_rank | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.document-settings
The company's document settings: who sees the Eingang, deletion after the retention period, own retention periods, whether documents may be shared by link and by whom.
Files: data/documents/document-settings.json, data/documents/document-settings.csv, schema/documents/document-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
inbox_visibility | string | text | One of finance, management. |
auto_purge_expired | boolean | boolean | |
retention_years | any JSON | jsonb | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text | |
sharing_enabled | boolean | boolean | |
members_may_share | boolean | boolean |
documents.document-access
Downloads, previews and text reads of documents, kept 90 days.
Files: data/documents/document-access.json, data/documents/document-access.csv, schema/documents/document-access.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (decimal text) | bigint | |
document_id | string (uuid) | uuid | |
version | integer or null | integer | Revision counter; rises with every change. |
kind | string | text | One of download, preview, text. |
actor_id | string or null | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
at | string (date-time) | timestamp with time zone |
documents.share-links
Links to documents for customers: document, version, who made it, until when, download cap and counts, first and last open, revocation; never the link's key.
Files: data/documents/share-links.json, data/documents/share-links.csv, schema/documents/share-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
document_id | string (uuid) | uuid | |
version_number | integer or null | integer | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expires_at | string (date-time) | timestamp with time zone | |
max_downloads | integer or null | integer | |
download_count | integer | integer | |
open_count | integer | integer | |
first_opened_at | string (date-time) or null | timestamp with time zone | |
last_opened_at | string (date-time) or null | timestamp with time zone | |
revoked_at | string (date-time) or null | timestamp with time zone | When it was revoked; it stays for the record. |
revoked_by | string or null | text | Refers to team.accounts.id. |
documents.share-link-events
Opens and downloads of links, kept 90 days: when, what, the client's network (IPv4 /24, IPv6 /64) and device class.
Files: data/documents/share-link-events.json, data/documents/share-link-events.csv, schema/documents/share-link-events.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (decimal text) | bigint | |
link_id | string (uuid) | uuid | |
kind | string | text | One of open, download, view. |
network | string or null | text | |
device | string | text | One of phone, tablet, desktop, other. |
at | string (date-time) | timestamp with time zone |
documents.email-addresses
The company's receiving addresses for e-mail: the part before the domain, who created it, when it was replaced.
Files: data/documents/email-addresses.json, data/documents/email-addresses.csv, schema/documents/email-addresses.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
local_part | string | text | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string | text | Refers to team.accounts.id. |
retired_at | string (date-time) or null | timestamp with time zone |
documents.emails
Received e-mails: when, from which server and sender, the From, subject and Message-ID, the SPF, DKIM and DMARC results, the record it was filed on, the parts not filed and why; the message itself as received under files/emails/.
Files: data/documents/emails.json, data/documents/emails.csv, schema/documents/emails.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
address_id | string (uuid) | uuid | |
spool_id | string | text | |
received_at | string (date-time) | timestamp with time zone | |
filed_at | string (date-time) | timestamp with time zone | |
recipient_detail | string or null | text | |
envelope_from | string or null | text | |
client_address | string | text | Address of the server that delivered the message to miphu. |
helo | string or null | text | |
header_from | string or null | text | |
header_from_name | string or null | text | |
subject | string or null | text | |
message_id | string or null | text | |
sent_at | string (date-time) or null | timestamp with time zone | |
spf | string | text | One of pass, fail, softfail, neutral, none, temperror, permerror. |
dkim | string | text | One of pass, fail, neutral, none, temperror, permerror, policy. |
dmarc | string | text | One of pass, fail, none, temperror, permerror. |
authenticated | boolean | boolean | |
auth | any JSON | jsonb | The authentication details: the From domain, the SPF domain, each DKIM signature's domain and result, the DMARC policy. |
route | any JSON | jsonb | |
state | string | text | One of filed, unreadable. |
source_blob_id | string (uuid) | uuid | |
bytes | string (decimal text) | bigint | |
refused | any JSON | jsonb | Parts of the message that were not filed, with the reason (unsupported type, empty, embedded picture, more than 20 attachments, storage full). |
original | object or null | file |
documents.email-documents
The documents each received e-mail became: its attachments, its text, or the message itself.
Files: data/documents/email-documents.json, data/documents/email-documents.csv, schema/documents/email-documents.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
mail_id | string (uuid) | uuid | |
document_id | string (uuid) | uuid | |
position | integer | smallint | |
role | string | text | One of attachment, text, original. |
money.expense-suppliers
Which supplier each expense came from, as a partner with the supplier role: who linked it and when, or that it was matched by name when the link was introduced. The name printed on the receipt stays in money.expenses.
Files: data/money/expense-suppliers.json, data/money/expense-suppliers.csv, schema/money/expense-suppliers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
supplier_id | string | text | |
source | string | text | user: set by a person; match_exact or match_normalised: matched by the receipt's supplier name when the link was introduced (26 September 2026). One of user, match_exact, match_normalised. |
linked_by | string or null | text | Account that set the link (team.accounts id); empty for a match. |
linked_at | string (date-time) | timestamp with time zone |
crm.objections
The do-not-contact list: who objected to being contacted (a lead, customer or contact, or someone not in miphu), the reason, the day of the objection, who recorded it and when.
Files: data/crm/objections.json, data/crm/objections.csv, schema/crm/objections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
record_kind | string or null | text | One of Lead, Kunde, Kontakt. |
record_id | string or null | text | |
reason | string | text | |
objected_on | string (date) | date | |
recorded_by | string or null | text | Refers to team.accounts.id. |
recorded_at | string (date-time) | timestamp with time zone | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
crm.objection-identifiers
What each entry of the do-not-contact list is recognised by: per e-mail address, phone number (E.164), website domain and company name with postal code a salted SHA-256 in hex, never the value itself.
Files: data/crm/objection-identifiers.json, data/crm/objection-identifiers.csv, schema/crm/objection-identifiers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
entry_id | string (uuid) | uuid | |
kind | string | text | One of email, phone, domain, name_zip. |
hash | string | text | |
added_at | string (date-time) | timestamp with time zone |
crm.objection-salt
The company's salt of the do-not-contact list, 32 bytes in hex: SHA-256(those bytes ‖ kind ':' normalised value), in hex, is an identifier's hash.
Files: data/crm/objection-salt.json, data/crm/objection-salt.csv, schema/crm/objection-salt.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
salt | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
crm.partners
Business partners in every role (prospect, customer, supplier). crm.customers is the subset with the role customer or supplier, for readers of format 1. Every partner id of another dataset resolves here. Deleted partners are included and flagged by deletedAt.
Files: data/crm/partners.json, data/crm/partners.csv, schema/crm/partners.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string | text | |
companyId | string | text | The company; the same in every row. Refers to company.profile.id. |
name | string | text | |
strasse | string or null | text | |
plz | string or null | text | |
ort | string or null | text | |
land | string or null | text | Country (ISO 3166-1 alpha-2). Empty only for a prospect whose country is not known; it gets the company's country when it becomes a customer. |
ustId | string or null | text | |
email | string or null | text | |
createdById | string | text | |
createdAt | string (date-time) | timestamp(3) with time zone | When the record was created. |
updatedAt | string (date-time) | timestamp(3) with time zone | When the record last changed. |
deletedAt | string (date-time) or null | timestamp(3) with time zone | When the record was deleted. Deleted records stay for the change log and are flagged here. |
bundesstaat | string or null | text | |
belegsprache | string or null | text | |
steuerbefreit | boolean | boolean | |
befreiungsnachweis | string or null | text | |
telefon | string or null | text | |
website | string or null | text | |
branche | string or null | text | |
quelle | string or null | text | |
rollen | array | text[] | The partner's roles: interessent (prospect: has leads, is no customer yet), kunde (customer), lieferant (supplier). The AI connection (MCP) names them prospect, customer and supplier. |
listInitial | string or null | text | The letter the record files under in the A–Z index of its list, derived from its name. |
ausLeadId | string or null | text | The lead this partner became a customer through; empty otherwise. |
rechnungsformat | string | text | One of automatisch, pdf, erechnung, xrechnung. |
leitwegId | string or null | text | |
kaeuferreferenz | string or null | text | |
erechnungEmail | string or null | text | |
peppolId | string or null | text | |
websiteObservationUrl | string or null | text | The address a check last found the partner's website at. |
websiteObservationReachable | boolean or null | boolean | Whether the website answered at the last check; empty when it was never checked. |
websiteObservedAt | string (date-time) or null | timestamp(3) with time zone | When the website was last checked. |
restrictedAt | string (date-time) or null | timestamp(3) with time zone | When the personal data of this customer (a natural person) were removed: contact data, website, trade and source are empty, and name, address and tax facts stay only for the issued documents that name them. |
zahlungszielTage | integer or null | integer | The customer's own payment term in days (0 to 365); empty for the company's. |
externeId | string or null | text | The partner's number in the system it came from (an old ERP's customer or debtor number); unique in the company without regard to case. A supplier's own number is inventory.suppliers external_id. |
privatkunde | boolean | boolean | Whether the customer buys as a consumer (a private customer); false: a business, with or without a VAT ID. The statutory late-payment proposal and the national invoicing duties read it. |
skonto | any JSON | jsonb | Since 1.54: the customer's Skonto term as JSON, one to three stages [{"tage": 10, "prozent": "2"}] (days from the invoice date, percent off the amount due); empty: none. |
team.interface-settings
Table layouts of each member, per client (the web app, the Mac app): column order, widths and visibility of each table. No row means the table's default layout.
Files: data/team/interface-settings.json, data/team/interface-settings.csv, schema/team/interface-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
account_id | string | text | The member (team.accounts id). |
client | string | text | The client the layout belongs to: web (the browser app) or mac (the Mac app). The clients never share a layout. |
scope | string | text | The table: tabelle: followed by the client's name of the screen (tabelle:kunden, tabelle:lager.bestand). |
value | any JSON | jsonb | The layout: reihenfolge (column ids in the order the member put them), breiten (widths the member dragged, column id to CSS pixels on the web and points on the Mac), sichtbar (columns the member showed or hid, column id to true or false). A column without an entry follows the table's default. |
version | integer | integer | Counts the changes of this layout, starting at 1. |
updated_at | string (date-time) | timestamp with time zone | When the layout last changed. |
crm.erased-records
Leads and contacts the company deleted permanently: the id each had, who created it with which request, and when it was deleted. No content. A repeated create request is answered as deleted.
Files: data/crm/erased-records.json, data/crm/erased-records.csv, schema/crm/erased-records.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | Lead or Kontakt (contact). One of Kontakt, Lead. |
created_by | string | text | The member who created the record (team.accounts id). |
request_id | string (uuid) | uuid | The request the record was created with. |
record_id | string | text | The id the deleted record had. |
erased_at | string (date-time) | timestamp with time zone | When the record was deleted permanently. |
documents.person-releases
Personnel papers released for the person whose personnel record is their home: who released them and when, by the default of the document type or by hand. The person reads them under My documents.
Files: data/documents/person-releases.json, data/documents/person-releases.csv, schema/documents/person-releases.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
document_id | string (uuid) | uuid | The document (documents.documents id). |
person_id | string (uuid) | uuid | The personnel record the document is released for (personnel.people id). |
origin | string | text | default: released by the default of its document type (payslip, contract) when the record became its home; set: released by hand. One of default, set. |
released_at | string (date-time) | timestamp(3) with time zone | When the reservation was released. |
released_by | string or null | text | |
first_retrieved_at | string (date-time) or null | timestamp with time zone | When the person first opened or downloaded the released document under My documents; empty until then. Each opening is not recorded. |
documents.contract-terms
Contract terms of documents of the type contract: kind, start, end, initial term, notice period, automatic renewal, the cancellation and the person responsible. Term end, notice date and status follow from them and are not stored.
Files: data/documents/contract-terms.json, data/documents/contract-terms.csv, schema/documents/contract-terms.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
document_id | string (uuid) | uuid | The contract (documents.documents id). |
kind | string | text | customer, supplier, partner, lease, insurance, maintenance, software, employment or other. One of customer, supplier, partner, lease, insurance, maintenance, software, employment, other. |
starts_on | string (date) or null | date | |
ends_on | string (date) or null | date | |
open_ended | boolean | boolean | |
initial_term | integer or null | smallint | |
initial_unit | string or null | text | month or year. One of month, year. |
notice | integer or null | smallint | |
notice_unit | string or null | text | day, week or month; the notice period runs to the end of the term. One of day, week, month. |
renewal | integer or null | smallint | |
renewal_unit | string or null | text | month or year; empty without automatic renewal. One of month, year. |
cancel_by | string (date) or null | date | The last day to give notice, where set by hand instead of counted back from the term end. |
cancelled_on | string (date) or null | date | |
cancelled_effective | string (date) or null | date | The day the cancellation takes effect; empty means the term end. |
responsible_id | string or null | text | The member reminded before the notice date (team.accounts id). |
remind_days | integer | smallint | How many days before the notice date the reminder task is created. |
value_interval | string or null | text | How often the document's amount is due: once, monthly, quarterly or yearly. One of once, monthly, quarterly, yearly. |
serves_as_invoice | boolean | boolean | The contract is the invoice for its recurring payments; it is then kept as long as a receipt. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text |
documents.contract-reminders
The reminder task created for each contract and notice date.
Files: data/documents/contract-reminders.json, data/documents/contract-reminders.csv, schema/documents/contract-reminders.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
document_id | string (uuid) | uuid | |
cancel_by | string (date) | date | The notice date the reminder was created for. |
task_id | string or null | text | The reminder task (crm.tasks id); empty once that task was deleted for good. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.dunning-notices
Payment reminders and dunning notices of invoices: stage, deadline, the entered fee, interest and flat-rate compensation (no tax on any of them), number and date once issued, the frozen content and the PDF.
Files: data/money/dunning-notices.json, data/money/dunning-notices.csv, schema/money/dunning-notices.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
invoice_id | string | text | The invoice it is about (documents.invoices id). |
stage | integer | smallint | 0 payment reminder, 1 to 3 the first to third dunning notice. |
status | string | text | draft or issued; an issued notice never changes. One of draft, issued. |
deadline | string (date) | date | The new deadline the notice sets. |
fee | string (decimal text) or null | numeric(30,6) | Dunning fee as entered, in the invoice's currency; no tax. |
interest | string (decimal text) or null | numeric(30,6) | Default interest as entered, in the invoice's currency; no tax. |
interest_from | string (date) or null | date | |
interest_to | string (date) or null | date | |
interest_rate | string (decimal text) or null | numeric(7,4) | The interest rate printed beside the interest, percent per year; empty when none was given. |
lump_sum | string (decimal text) or null | numeric(30,6) | Flat-rate compensation as entered, in the invoice's currency; no tax. |
note | string or null | text | |
assignee_id | string or null | text | Who gets the task for the next step (team.accounts id); empty: who issued it. |
seq | string (decimal text) or null | bigint | The running number; printed with number_prefix as PREFIX-00000001 (since 1.52 PREFIX-YYYY-0001, see number_prefix). Reserved when issuing began. |
number_prefix | string or null | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
issued_on | string (date) or null | date | |
issued_at | string (date-time) or null | timestamp with time zone | |
issued_by | string or null | text | |
snapshot | any JSON | jsonb | What the issued notice printed: invoice, open amount, amounts, total, seller and buyer. |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | The issued PDF; the file is in files/money/dunning-notices/. |
task_id | string or null | text | The task created for the next step (crm.tasks id); empty once that task was deleted for good. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text |
money.dunning-requests
Requests that created or issued payment reminders and dunning notices.
Files: data/money/dunning-requests.json, data/money/dunning-requests.csv, schema/money/dunning-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of create, issue. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
notice_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.recurrences
Recurring invoices, expenses and tasks: interval, first period, end, billing in arrears or in advance, the template (an invoice draft, an expense or a task), customer or supplier, contract and the person or department.
Files: data/money/recurrences.json, data/money/recurrences.csv, schema/money/recurrences.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
kind | string | text | invoice, task or (since 1.55) expense. One of invoice, task, expense. |
title | string | text | |
interval_count | integer | smallint | |
interval_unit | string | text | week, month, quarter or year; periods are counted from anchor, month ends kept. One of week, month, quarter, year. |
anchor | string (date) | date | The first period's first day; period k starts anchor + k intervals. Since 1.57, with service_start: the first day of the calendar unit the service begins in (the first period then starts on service_start). |
next_index | integer | integer | The number of the next period not yet run (0 is the first). |
ends_on | string (date) or null | date | |
billing | string or null | text | Invoices: arrears (the draft after the period, the default) or advance (at its start); empty for tasks. One of arrears, advance. |
lead_days | integer | smallint | Days before the period's due day (arrears: the day after the period; advance and tasks: its first day) the draft or task is created; 0 with lead_day. |
template | any JSON | jsonb | Invoices: the invoice draft without its dates; tasks: title, description and priority; expenses (since 1.55): the expense's fields (money.expenses fields) without its reference, its dates only carrying the term between them. |
source_invoice_id | string or null | text | |
customer_id | string or null | text | |
document_id | string (uuid) or null | uuid | The contract it belongs to (documents.documents id); empty without one. |
assignee_id | string or null | text | |
department_id | string (uuid) or null | uuid | |
active | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text | |
lead_day | integer or null | smallint | Since 1.53: created on the last day with this number (1-31, a shorter month's last day) on or before the period's due day; empty: lead_days. |
due_day | integer or null | smallint | Since 1.53, invoices: the draft is due on the first day with this number (1-31) from the day it is created; empty: the customer's or company's payment term. Since 1.55, expenses: due on the first day with this number from the expense's day; empty: as many days after it as the template. |
source_expense_id | string (uuid) or null | uuid | Since 1.55, expenses: the expense the template was taken from (money.expenses id); empty once deleted. |
supplier_id | string or null | text | Since 1.55, expenses: the supplier each expense is linked to (crm.customers id); empty without one. |
confirm | boolean | boolean | Since 1.55: true - each expense is recorded for a person to confirm (with a task); false - recorded as reviewed at once. Always true for invoices and tasks. |
prorate | boolean | boolean | Since 1.57, invoices: true - the first period runs from service_start to the end of its calendar unit and its draft bills each price at its share of the days; the following periods are whole calendar units from anchor. |
service_start | string (date) or null | date | Since 1.57: the day the service begins when it is not the first day of its calendar unit (then anchor is that unit's first day); empty otherwise. |
money.recurrence-runs
Each period a recurrence ran, with the invoice draft, expense or task it created.
Files: data/money/recurrence-runs.json, data/money/recurrence-runs.csv, schema/money/recurrence-runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
rule_id | string (uuid) | uuid | |
period_index | integer | integer | |
period_start | string (date) | date | |
period_end | string (date) | date | |
invoice_id | string or null | text | The invoice draft created for the period (documents.invoices id); empty once discarded. |
task_id | string or null | text | The task created for the period (crm.tasks id); empty once deleted for good. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expense_id | string (uuid) or null | uuid | Since 1.55: the expense created for the period (money.expenses id). |
money.recurrence-requests
Requests that created recurrences.
Files: data/money/recurrence-requests.json, data/money/recurrence-requests.csv, schema/money/recurrence-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
rule_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
team.calendar-links
Calendar links of the members: when each was created, last fetched and revoked, and why. The key of a link is not exported.
Files: data/team/calendar-links.json, data/team/calendar-links.csv, schema/team/calendar-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
id | string (uuid) | uuid | |
account_id | string | text | The member the link belongs to (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
last_fetched_at | string (date-time) or null | timestamp with time zone | |
revoked_at | string (date-time) or null | timestamp with time zone | When it was revoked; it stays for the record. |
revoked_reason | string or null | text | person (the member ended it), replaced (a new link), company_off (the owner switched the calendar off) or access_ended. One of person, replaced, company_off, access_ended. |
team.calendar-setting
Whether the owner allows members to subscribe to their calendar.
Files: data/team/calendar-setting.json, data/team/calendar-setting.csv, schema/team/calendar-setting.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
allowed | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text |
inventory.units
The company's own units: name, symbol and the standard UN/ECE code each stands for on e-invoices.
Files: data/inventory/units.json, data/inventory/units.csv, schema/inventory/units.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
name | string | text | The unit's name in the company's words, e.g. Rolle. |
symbol | string | text | The symbol printed after the quantity on documents. |
code | string | text | The UN/ECE Recommendation 20/21 code the unit stands for; it also decides the unit's stock decimals. Refers to platform_article.unit, not part of the export. |
sort_rank | integer or null | integer | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.article-units
Further units of each article with their content in the article's unit, whether sales and purchasing offer them, and an own price.
Files: data/inventory/article-units.json, data/inventory/article-units.csv, schema/inventory/article-units.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
article_id | string (uuid) | uuid | |
unit_code | string | text | Refers to platform_article.unit, not part of the export. |
unit_id | string (uuid) or null | uuid | The company's own unit (inventory.units id); empty for a standard unit. |
factor | string (decimal text) | numeric(18,6) | How many of the article's unit (inventory.articles unit_code) one of this unit holds: 12 for a box of 12 pieces. |
sales | boolean | boolean | |
purchase | boolean | boolean | |
sales_default | boolean | boolean | |
purchase_default | boolean | boolean | |
price | string (decimal text) or null | numeric(24,6) | Net sales price of this unit in the article's currency; empty: the article's price × factor. |
position | integer | smallint |
worktime.settings
The company's own values of the time recording: the days within which people add or correct their own time, and the years recorded time is kept. Empty values follow the country's proposal.
Files: data/worktime/settings.json, data/worktime/settings.csv, schema/worktime/settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
retro_days | integer or null | integer | |
retention_years | integer or null | integer | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text |
worktime.confirmations
Each confirmation of the notice shown before the time recording was switched on: who, when, which version of the notice.
Files: data/worktime/confirmations.json, data/worktime/confirmations.csv, schema/worktime/confirmations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
account_id | string | text | Refers to team.accounts.id. |
notice_version | string | text | |
confirmed_at | string (date-time) | timestamp with time zone | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
worktime.events
Every clock-in, break, end of break, change of what is worked on and clock-out as recorded, append-only: the instant that counts, the device's time, when it arrived (recorded on), how it was recorded, the customer or order, who recorded it and why, and its place in the person's hash chain.
Files: data/worktime/events.json, data/worktime/events.csv, schema/worktime/events.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | The person whose time it is (team.accounts membership id). |
seq | string (decimal text) | bigint | |
kind | string | text | clock_in, break_start, break_end, switch (what is worked on changes) or clock_out. One of clock_in, break_start, break_end, switch, clock_out. |
occurred_at | string (date-time) | timestamp(3) with time zone | The instant that counts: the server's on arrival, the device's for an event recorded offline. |
device_time | string (date-time) | timestamp(3) with time zone | |
received_at | string (date-time) | timestamp(3) with time zone | When the event arrived at miphu (recorded on). |
source | string | text | online, offline (queued on the device) or on_behalf (recorded by the owner or the Personnel right for the person, with a reason). One of online, offline, on_behalf. |
zone | string | text | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
recorded_by | string | text | |
reason | string or null | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
prev_hash | string | text | |
hash | string | text | SHA-256 over the event's fields and the previous hash (prev_hash): a later change of any field breaks the chain. |
worktime.corrections
Every correction and every block of time added afterwards, append-only: the block, what changed and the values before, the reason, who and when, and its place in the person's hash chain.
Files: data/worktime/corrections.json, data/worktime/corrections.csv, schema/worktime/corrections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
seq | string (decimal text) | bigint | |
block_id | string (uuid) or null | uuid | |
kind | string | text | set_start, set_end, set_break, set_reference, void_block, or add_block (time added afterwards). One of set_start, set_end, set_break, set_reference, void_block, add_block. |
starts_at | string (date-time) or null | timestamp(3) with time zone | |
ends_at | string (date-time) or null | timestamp(3) with time zone | |
break_minutes | integer or null | integer | |
customer_id | string or null | text | |
order_id | string (uuid) or null | uuid | |
reason | string or null | text | |
before | any JSON | jsonb | The block before the correction: start, end, break and reference; empty for add_block. |
zone | string | text | |
recorded_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
prev_hash | string | text | |
hash | string | text | |
segment_from | string (date-time) or null | timestamp(3) with time zone | For set_reference on one segment of the block only: the instant the segment showed as its start; empty when the whole block was booked anew. |
worktime.blocks
The work blocks as computed from the events and corrections: work day, start, end, break, net minutes, marks and the share per customer or order. Derived; the events and corrections are the record.
Files: data/worktime/blocks.json, data/worktime/blocks.csv, schema/worktime/blocks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
local_date | string (date) | date | |
zone | string | text | |
raw_started_at | string (date-time) | timestamp(3) with time zone | |
started_at | string (date-time) | timestamp(3) with time zone | |
ended_at | string (date-time) or null | timestamp(3) with time zone | |
break_open_since | string (date-time) or null | timestamp(3) with time zone | |
break_minutes | integer | integer | |
net_minutes | integer or null | integer | |
flags | array | text[] | offline, suspicious_time (device time and arrival far apart), added, corrected, on_behalf. |
segments | any JSON | jsonb | |
recorded_at | string (date-time) | timestamp(3) with time zone | |
voided | boolean | boolean | The block was struck through by a correction; it counts nowhere. |
event_ids | array | uuid[] | |
correction_ids | array | uuid[] | |
fingerprint | string | text |
worktime.chains
The head of each person's hash chain: the number and hash of the newest event or correction.
Files: data/worktime/chains.json, data/worktime/chains.csv, schema/worktime/chains.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
seq | string (decimal text) | bigint | |
head | string | text |
worktime.pruned
Events and corrections deleted by hand after their retention: their number in the chain and their hash, so the rest of the chain still checks.
Files: data/worktime/pruned.json, data/worktime/pruned.csv, schema/worktime/pruned.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
membership_id | string | text | The person as a membership (team.memberships id); every other person column holds the account (team.accounts id), and team.memberships.accountId joins them. |
seq | string (decimal text) | bigint | |
hash | string | text | |
pruned_at | string (date-time) | timestamp with time zone | |
pruned_by | string | text |
worktime.requests
Requests that changed the time recording's settings or deleted old time.
Files: data/worktime/requests.json, data/worktime/requests.csv, schema/worktime/requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). Refers to team.accounts.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of settings, prune, block. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.exchange-rates
Exchange rates kept with documents in another currency than the company's base currency: the rate of each issued invoice and correction at its issue (the ECB reference rate of its date, or for a reversal or correction its invoice's), and every rate set by hand on an invoice, quote, order or expense. A document without a row here takes the ECB reference rate of its date.
Files: data/money/exchange-rates.json, data/money/exchange-rates.csv, schema/money/exchange-rates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | invoice (documents.invoices, an issued invoice or a draft), offer (a quote), order, expense or payment (a payment on an invoice, its rate set by hand); document_id is that record's id. One of invoice, offer, order, expense, payment. |
document_id | string | text | The document the rate belongs to (the id in the dataset kind names). |
currency | string | text | The document's currency (ISO 4217). |
base_currency | string | text | The company's base currency the rate was kept against. |
rate | string (decimal text) | numeric | Units of currency per one unit of base_currency (the ECB's notation: 1 EUR = 1.1269 USD). |
rate_on | string (date) or null | date | The ECB working day the rate was published for; empty for a rate set by hand. |
source | string | text | ezb (the ECB reference rate), beleg (taken over from the invoice a reversal or correction refers to) or hand (set by set_by). One of ezb, beleg, hand. |
set_at | string (date-time) | timestamp with time zone | When the rate was kept or set. |
set_by | string or null | text | Who set it by hand (team.accounts id); empty for a rate kept from the ECB or an invoice. |
schedule.holiday-days
The company's own days beside the public holidays: an extra day off, a half day, a closure (taken as leave or not), and a holiday worked through; for everyone or for one country or region.
Files: data/schedule/holiday-days.json, data/schedule/holiday-days.csv, schema/schedule/holiday-days.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
kind | string | text | day_off (free), half_day (half of the day free), closure (the company is closed) or working (a public holiday is worked through). One of day_off, half_day, closure, working. |
starts_on | string (date) | date | |
ends_on | string (date) | date | |
label | string or null | text | |
deducts_leave | boolean | boolean | A closure the people take as leave: its days still count as working days of a vacation. |
country_code | string or null | text | Only for the people working in this country (and region); empty: everyone. |
region | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string or null | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
updated_by | string or null | text |
schedule.holiday-requests
Requests that added, changed or removed the company's own days.
Files: data/schedule/holiday-requests.json, data/schedule/holiday-requests.csv, schema/schedule/holiday-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
override_id | string (uuid) | uuid | |
outcome | string | text | One of created, updated, removed. |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
inventory.workcenters
Work centres of the production: code, name, hourly rate in the company's currency, working minutes Monday to Sunday, how many orders run at once, the default stock place, archived.
Files: data/inventory/workcenters.json, data/inventory/workcenters.csv, schema/inventory/workcenters.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
code | string | text | |
name | string | text | |
hourly_rate | string (decimal text) or null | numeric(14,4) | |
minutes | array | smallint[] | |
parallel | integer | smallint | |
location_id | string (uuid) or null | uuid | |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.production-requests
Requests that changed work centres, routings or production orders.
Files: data/inventory/production-requests.json, data/inventory/production-requests.csv, schema/inventory/production-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.routings
Articles with a routing of their own and its version; a variant without one follows its variant article's.
Files: data/inventory/routings.json, data/inventory/routings.csv, schema/inventory/routings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
article_id | string (uuid) | uuid | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.routing-steps
Work steps of the routings in their order: work centre, name, set-up minutes once per order, minutes per stock unit, note.
Files: data/inventory/routing-steps.json, data/inventory/routing-steps.csv, schema/inventory/routing-steps.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
article_id | string (uuid) | uuid | |
position | integer | smallint | |
workcenter_id | string (uuid) | uuid | |
name | string | text | |
setup_minutes | string (decimal text) | numeric(10,2) | |
unit_minutes | string (decimal text) | numeric(14,4) | |
note | string or null | text |
inventory.production-settings
Whether production cost goes into the value of finished parts (material only otherwise).
Files: data/inventory/production-settings.json, data/inventory/production-settings.csv, schema/inventory/production-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
cost_in_valuation | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.production-numbers
The next number of production orders.
Files: data/inventory/production-numbers.json, data/inventory/production-numbers.csv, schema/inventory/production-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | |
next | string (decimal text) | bigint |
inventory.production-orders
Production orders: article, quantity, stage, due day, where it comes from, places, good quantity received and its value, who made, released, finished or cancelled it and when.
Files: data/inventory/production-orders.json, data/inventory/production-orders.csv, schema/inventory/production-orders.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
number_prefix | string or null | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
article_id | string (uuid) | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
status | string | text | One of draft, released, in_progress, done, cancelled. |
due_on | string (date) or null | date | |
origin | string | text | One of free, sales_order, reorder. |
origin_order_id | string (uuid) or null | uuid | |
origin_line | string or null | text | |
location_id | string (uuid) | uuid | |
target_location_id | string (uuid) | uuid | |
note | string or null | text | |
produced_quantity | string (decimal text) | numeric(18,6) | |
produced_value | string (decimal text) | numeric(28,6) | |
cost_in_valuation | boolean or null | boolean | |
closed_short_reason | string or null | text | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
released_by | string or null | text | |
released_at | string (date-time) or null | timestamp(3) with time zone | When the reservation was released. |
started_at | string (date-time) or null | timestamp(3) with time zone | |
done_by | string or null | text | |
done_at | string (date-time) or null | timestamp(3) with time zone | |
cancelled_by | string or null | text | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
inventory.production-order-materials
The bill of materials as copied at release: component, planned and consumed quantity, consumed value, the average cost at release.
Files: data/inventory/production-order-materials.json, data/inventory/production-order-materials.csv, schema/inventory/production-order-materials.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
order_id | string (uuid) | uuid | |
position | integer | smallint | |
article_id | string (uuid) | uuid | |
planned_quantity | string (decimal text) | numeric(18,6) | |
consumed_quantity | string (decimal text) | numeric(18,6) | |
consumed_value | string (decimal text) | numeric(28,6) | |
planned_unit_cost | string (decimal text) or null | numeric(28,10) |
inventory.production-order-steps
The routing as copied at release: work centre, step, planned minutes, the rate at release, reported minutes, good quantity and scrap, stage.
Files: data/inventory/production-order-steps.json, data/inventory/production-order-steps.csv, schema/inventory/production-order-steps.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
order_id | string (uuid) | uuid | |
position | integer | smallint | |
workcenter_id | string (uuid) | uuid | |
workcenter_code | string | text | |
workcenter_name | string | text | |
name | string | text | |
setup_minutes | string (decimal text) | numeric(10,2) | |
unit_minutes | string (decimal text) | numeric(14,4) | |
planned_minutes | string (decimal text) | numeric(18,4) | |
hourly_rate | string (decimal text) or null | numeric(14,4) | |
note | string or null | text | |
status | string | text | One of open, running, done. |
actual_minutes | string (decimal text) | numeric(14,2) | |
good_quantity | string (decimal text) | numeric(18,6) | |
scrap_quantity | string (decimal text) | numeric(18,6) |
inventory.production-reports
Reports on the work steps, never changed: minutes, good quantity, scrap, done, note, the report a correction takes back, who reported and when.
Files: data/inventory/production-reports.json, data/inventory/production-reports.csv, schema/inventory/production-reports.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
order_id | string (uuid) | uuid | |
step_id | string (uuid) | uuid | |
minutes | string (decimal text) | numeric(10,2) | |
good_quantity | string (decimal text) | numeric(18,6) | |
scrap_quantity | string (decimal text) | numeric(18,6) | |
finished | boolean | boolean | |
note | string or null | text | |
reverses | string (uuid) or null | uuid | |
reported_by | string | text | |
reported_at | string (date-time) | timestamp(3) with time zone | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
money.tax-exchange-rates
Exchange rates of the tax currency set by hand on invoices whose seller country declares tax in another currency than both the invoice's and the company's base currency. An issued invoice prints the tax in that currency at this rate; a draft without a row takes the rate its country's rule names.
Files: data/money/tax-exchange-rates.json, data/money/tax-exchange-rates.csv, schema/money/tax-exchange-rates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
invoice_id | string | text | The invoice (documents.invoices id) the rate was set on. |
currency | string | text | The invoice's currency (ISO 4217). |
tax_currency | string | text | The currency the seller's country declares tax in (ISO 4217). |
rate | string (decimal text) | numeric | Units of currency per one unit of tax_currency (1 EUR = 4.2510 AED). |
set_at | string (date-time) | timestamp with time zone | When the rate was set. |
set_by | string | text | Who set it (team.accounts id). |
money.proformas
Proformas of invoice drafts: payment requests marked as no invoice, with their own number, the date, the draft's lines and totals as they stood (no tax amount), and the PDF. A proforma never changes.
Files: data/money/proformas.json, data/money/proformas.csv, schema/money/proformas.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
invoice_id | string | text | The invoice draft it was made of (documents.invoices id); the invoice may be issued since. |
seq | string (decimal text) | bigint | The running number; printed with number_prefix as PREFIX-00000001 (since 1.52 PREFIX-YYYY-0001, see number_prefix). |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
issued_on | string (date) | date | |
snapshot | any JSON | jsonb | What the proforma printed: number, date, currency, gross total, the draft and its calculation. |
snapshot_hash | string | text | |
pdf | object | bytea | The PDF; the file is in files/money/proformas/. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string | text |
money.proforma-requests
Requests that made proformas.
Files: data/money/proforma-requests.json, data/money/proforma-requests.csv, schema/money/proforma-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
proforma_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.order-time-bookings
Time booked at an order: the person, the day, the minutes and a note. It counts in the order's hours, never in working time or payroll. A removed booking keeps its row with removed_at and counts nowhere.
Files: data/documents/order-time-bookings.json, data/documents/order-time-bookings.csv, schema/documents/order-time-bookings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | Chosen by the app with the request; the same id with the same content books once. |
order_id | string (uuid) | uuid | The order (documents.orders id). |
membership_id | string or null | text | The person who worked (team.memberships id); empty once their access was removed. |
work_date | string (date) | date | The day of the work. |
minutes | integer | integer | The minutes worked, 1 to 1440. |
note | string or null | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
recorded_by | string or null | text | Account that booked it (team.accounts id). |
recorded_at | string (date-time) | timestamp(3) with time zone | When it was booked. |
removed_at | string (date-time) or null | timestamp(3) with time zone | When the booking was removed; empty while it counts. |
removed_by | string or null | text | Account that removed it (team.accounts id). |
crm.lead-sources
The company's own lead sources (the seven every company has are not rows): key and name; archived ones stay on the leads that carry them.
Files: data/crm/lead-sources.json, data/crm/lead-sources.csv, schema/crm/lead-sources.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
key | string | text | The source's key, q- and twelve hexadecimal digits; crm.leads quelle names it. It never changes. |
name | string | text | The source's name in the company's words, e.g. Messe Stuttgart. |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
inventory.quality-defect-types
The company's defect types: name, short code, archived.
Files: data/inventory/quality-defect-types.json, data/inventory/quality-defect-types.csv, schema/inventory/quality-defect-types.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
name | string | text | |
code | string or null | text | |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text |
inventory.quality-plans
Inspection plans per article and occasion (incoming, in-process at a routing step, final, outgoing): name, whether the goods are held until decided, the sample (all, a number or a percentage), archived.
Files: data/inventory/quality-plans.json, data/inventory/quality-plans.csv, schema/inventory/quality-plans.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
article_id | string (uuid) | uuid | |
occasion | string | text | One of wareneingang, fertigung, endpruefung, warenausgang. |
operation_position | integer or null | smallint | |
name | string | text | |
blocks | boolean | boolean | |
sample_kind | string | text | One of alle, anzahl, prozent, aql. |
sample_value | string (decimal text) or null | numeric(18,6) | |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
created_by | string | text | |
aql | string or null | text | One of 0.010, 0.015, 0.025, 0.040, 0.065, 0.10, 0.15, 0.25, 0.40, 0.65, 1.0, 1.5, 2.5, 4.0, 6.5, 10, 15, 25, 40, 65, 100, 150, 250, 400, 650, 1000. |
inspection_level | string or null | text | One of S-1, S-2, S-3, S-4, I, II, III. |
skip_qualify | integer or null | smallint | |
skip_frequency | integer or null | smallint |
inventory.quality-plan-checks
The checks of the plans in their order: label, attribute or variable, unit, nominal value, lower and upper limit, required, hint; a removed check keeps its row with removed_at.
Files: data/inventory/quality-plan-checks.json, data/inventory/quality-plan-checks.csv, schema/inventory/quality-plan-checks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
plan_id | string (uuid) | uuid | |
position | integer | smallint | |
label | string | text | |
kind | string | text | One of attributiv, variabel. |
unit_code | string or null | text | Refers to platform_article.unit, not part of the export. |
nominal | string (decimal text) or null | numeric(24,6) | |
lower_limit | string (decimal text) or null | numeric(24,6) | |
upper_limit | string (decimal text) or null | numeric(24,6) | |
required | boolean | boolean | |
hint | string or null | text | |
removed_at | string (date-time) or null | timestamp(3) with time zone | When the item was taken out of the plan; it stays for the record. |
gauge_id | string (uuid) or null | uuid |
inventory.inspection-numbers
The last number of inspections.
Files: data/inventory/inspection-numbers.json, data/inventory/inspection-numbers.csv, schema/inventory/inspection-numbers.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
last | string (decimal text) | bigint | |
nonconformity_last | string (decimal text) | bigint | |
certificate_last | string (decimal text) | bigint |
inventory.inspections
Inspections: number, status, occasion, source (goods receipt, production order, delivery note or by hand) with its line, step and report, article, lot, place, quantity, sample, supplier or customer, plan and its version, rating, open required checks, the decision (accepted, rejected, concession, disposition, reason, who and when), cancellation.
Files: data/inventory/inspections.json, data/inventory/inspections.csv, schema/inventory/inspections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
status | string | text | One of offen, in_arbeit, entschieden, storniert. |
occasion | string | text | One of wareneingang, fertigung, endpruefung, warenausgang, manuell. |
source_type | string | text | One of wareneingang, fertigung, lieferschein, manuell. |
source_id | string (uuid) or null | uuid | |
source_line | string (uuid) or null | uuid | |
source_step | string (uuid) or null | uuid | |
source_report | string (uuid) or null | uuid | |
article_id | string (uuid) | uuid | |
lot_id | string (uuid) or null | uuid | |
location_id | string (uuid) or null | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
sample | string (decimal text) | numeric(18,6) | |
supplier_id | string or null | text | |
customer_id | string or null | text | |
plan_id | string (uuid) or null | uuid | |
plan_version | integer or null | integer | |
rating | string | text | One of io, nio, offen. |
open_required | integer | integer | |
decision_result | string or null | text | One of angenommen, abgelehnt, teilweise. |
accepted | string (decimal text) or null | numeric(18,6) | |
rejected | string (decimal text) or null | numeric(18,6) | |
concession | boolean | boolean | |
disposition | string or null | text | One of sperren, verschrotten. |
decision_reason | string or null | text | |
decided_by | string or null | text | |
decided_at | string (date-time) or null | timestamp(3) with time zone | |
note | string or null | text | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text | |
aql_value | string or null | text | |
aql_level | string or null | text | |
aql_lot_size | integer or null | integer | |
aql_letter | string or null | text | |
aql_severity | string or null | text | One of normal, verschaerft, ausgesetzt. |
aql_n | integer or null | integer | |
aql_ac | integer or null | integer | |
aql_re | integer or null | integer | |
aql_defects | string (decimal text) or null | numeric(18,6) | |
aql_verdict | string or null | text | One of annehmbar, nicht_annehmbar, offen. |
inventory.inspection-checks
The checks of each inspection as copied from its plan, with the result: inspected, defective, note, rating, who recorded it and when.
Files: data/inventory/inspection-checks.json, data/inventory/inspection-checks.csv, schema/inventory/inspection-checks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
inspection_id | string (uuid) | uuid | |
plan_check_id | string (uuid) or null | uuid | |
position | integer | smallint | |
label | string | text | |
kind | string | text | One of attributiv, variabel. |
unit_code | string or null | text | |
nominal | string (decimal text) or null | numeric(24,6) | |
lower_limit | string (decimal text) or null | numeric(24,6) | |
upper_limit | string (decimal text) or null | numeric(24,6) | |
required | boolean | boolean | |
hint | string or null | text | |
inspected | string (decimal text) or null | numeric(18,6) | |
defective | string (decimal text) or null | numeric(18,6) | |
note | string or null | text | |
rating | string | text | One of io, nio, offen. |
recorded_by | string or null | text | |
recorded_at | string (date-time) or null | timestamp(3) with time zone | |
gauge_id | string (uuid) or null | uuid | |
gauge_overdue | boolean | boolean |
inventory.inspection-measurements
Every measured value of a check, in its order, with the time it was recorded.
Files: data/inventory/inspection-measurements.json, data/inventory/inspection-measurements.csv, schema/inventory/inspection-measurements.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
inspection_check_id | string (uuid) | uuid | |
position | integer | smallint | |
value | string (decimal text) | numeric(24,6) | |
recorded_at | string (date-time) | timestamp(3) with time zone |
inventory.inspection-defects
The defect types a result names.
Files: data/inventory/inspection-defects.json, data/inventory/inspection-defects.csv, schema/inventory/inspection-defects.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
inspection_check_id | string (uuid) | uuid | |
defect_type_id | string (uuid) | uuid |
inventory.quality-holds
Holds: article, place, lot, quantity, reason (inspection, deviation, by hand), inspection, note, whether active, when, by whom and why it was released.
Files: data/inventory/quality-holds.json, data/inventory/quality-holds.csv, schema/inventory/quality-holds.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
article_id | string (uuid) | uuid | |
location_id | string (uuid) | uuid | |
lot_id | string (uuid) or null | uuid | |
quantity | string (decimal text) | numeric(18,6) | |
reason | string | text | One of pruefung, abweichung, manuell. |
inspection_id | string (uuid) or null | uuid | |
note | string or null | text | |
active | boolean | boolean | |
released_at | string (date-time) or null | timestamp(3) with time zone | When the reservation was released. |
released_by | string or null | text | |
release_reason | string or null | text | One of freigabe, verschrottet, ruecksendung, bestand, manuell, storno. |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text | |
nonconformity_id | string (uuid) or null | uuid |
inventory.quality-requests
Requests that changed defect types, plans, inspections or holds.
Files: data/inventory/quality-requests.json, data/inventory/quality-requests.csv, schema/inventory/quality-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
inventory.quality-nonconformities
Deviations (customer complaints, supplier complaints, internal): number, kind, status, title, partner, article, lot, quantity, the inspection, goods receipt, delivery note and production order they refer to, the partner's reference, owner, due day, the 8D fields (problem, containment, root cause, actions), the closing (effective, note, who and when), cancellation.
Files: data/inventory/quality-nonconformities.json, data/inventory/quality-nonconformities.csv, schema/inventory/quality-nonconformities.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
seq | string (decimal text) | bigint | |
number_prefix | string | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
kind | string | text | One of kunde, lieferant, intern. |
status | string | text | One of offen, in_arbeit, abgeschlossen, storniert. |
title | string | text | |
partner_id | string or null | text | |
article_id | string (uuid) or null | uuid | |
lot_id | string (uuid) or null | uuid | |
quantity | string (decimal text) or null | numeric(18,6) | |
inspection_id | string (uuid) or null | uuid | |
receipt_id | string (uuid) or null | uuid | |
delivery_id | string (uuid) or null | uuid | |
production_order_id | string (uuid) or null | uuid | |
external_ref | string or null | text | |
owner_id | string or null | text | |
due_on | string (date) or null | date | |
problem | string | text | |
containment | string or null | text | |
root_cause | string or null | text | |
actions | string or null | text | |
closed_at | string (date-time) or null | timestamp(3) with time zone | |
closed_by | string or null | text | |
effective | boolean or null | boolean | |
closing_note | string or null | text | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancelled_by | string or null | text | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.quality-nonconformity-team
The team (D1) of each deviation.
Files: data/inventory/quality-nonconformity-team.json, data/inventory/quality-nonconformity-team.csv, schema/inventory/quality-nonconformity-team.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
nonconformity_id | string (uuid) | uuid | |
account_id | string | text |
inventory.quality-nonconformity-defects
The defect types a deviation names.
Files: data/inventory/quality-nonconformity-defects.json, data/inventory/quality-nonconformity-defects.csv, schema/inventory/quality-nonconformity-defects.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
nonconformity_id | string (uuid) | uuid | |
defect_type_id | string (uuid) | uuid |
inventory.inspection-certificates
Inspection certificates after EN 10204 (3.1, 2.1) of shipped delivery notes: number, status, values shown, specification, addition, language, who released them in which function and when, the frozen content and its hash, cancellation; the issued PDF as a file.
Files: data/inventory/inspection-certificates.json, data/inventory/inspection-certificates.csv, schema/inventory/inspection-certificates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
seq | string (decimal text) or null | bigint | |
number_prefix | string or null | text | The prefix the record was numbered with; its number is number_prefix, a hyphen and seq with at least eight digits (AU-00000080). It never changes; the company's setting only decides the prefix of records numbered later. Since 1.52 a record numbered from then on carries its period here (AU-2026 or AU-2026-10) and seq restarts per period; the number is then number_prefix, a hyphen and seq with at least four digits (AU-2026-0042). |
kind | string | text | One of 3.1, 2.1. |
status | string | text | One of entwurf, ausgestellt, storniert. |
delivery_id | string (uuid) | uuid | |
values_mode | string | text | One of zusammenfassung, alle. |
specification | string or null | text | |
addition | string or null | text | |
language | string | text | |
released_by | string or null | text | |
released_at | string (date-time) or null | timestamp(3) with time zone | When the reservation was released. |
release_function | string or null | text | |
snapshot | any JSON | jsonb | |
snapshot_hash | string or null | text | |
pdf | object or null | bytea | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancelled_by | string or null | text | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text |
inventory.inspection-certificate-lines
The delivery note lines a certificate covers.
Files: data/inventory/inspection-certificate-lines.json, data/inventory/inspection-certificate-lines.csv, schema/inventory/inspection-certificate-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
certificate_id | string (uuid) | uuid | |
delivery_line_id | string (uuid) | uuid | |
position | integer | smallint |
inventory.inspection-certificate-inspections
The inspections a certificate names per line.
Files: data/inventory/inspection-certificate-inspections.json, data/inventory/inspection-certificate-inspections.csv, schema/inventory/inspection-certificate-inspections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
certificate_id | string (uuid) | uuid | |
delivery_line_id | string (uuid) | uuid | |
inspection_id | string (uuid) | uuid |
inventory.quality-gauges
Gauges (measuring and test equipment): number, name, kind, maker, serial number, place, measuring range, calibration interval in months, status (active or blocked), the due day of the next calibration, archived, note.
Files: data/inventory/quality-gauges.json, data/inventory/quality-gauges.csv, schema/inventory/quality-gauges.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
number | string | text | |
name | string | text | |
kind_label | string or null | text | |
maker | string or null | text | |
serial_number | string or null | text | |
location_label | string or null | text | |
range_label | string or null | text | |
interval_months | integer or null | smallint | |
status | string | text | One of aktiv, gesperrt. |
due_on | string (date) or null | date | |
archived_at | string (date-time) or null | timestamp(3) with time zone | When the record was archived. Archived records are included and flagged here. |
note | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
inventory.quality-gauge-calibrations
Calibrations of the gauges: day, result (pass or fail), by whom, certificate number, note, the due day it set, cancellation.
Files: data/inventory/quality-gauge-calibrations.json, data/inventory/quality-gauge-calibrations.csv, schema/inventory/quality-gauge-calibrations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
gauge_id | string (uuid) | uuid | |
done_on | string (date) | date | |
result | string | text | One of io, nio. |
performed_by | string or null | text | |
certificate_ref | string or null | text | |
note | string or null | text | |
next_due | string (date) or null | date | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancel_reason | string or null | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text |
inventory.quality-sampling-states
The severity of each AQL inspection plan (per supplier at the goods receipt): normal, tightened or discontinued, skip-lot and its place in the cycle, the counters of the switching rules, since when.
Files: data/inventory/quality-sampling-states.json, data/inventory/quality-sampling-states.csv, schema/inventory/quality-sampling-states.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
plan_id | string (uuid) | uuid | |
supplier_id | string or null | text | |
severity | string | text | One of normal, verschaerft, ausgesetzt. |
skip_active | boolean | boolean | |
skip_position | integer | smallint | |
accepted_run | integer | integer | |
recent | string | text | |
rejected_tightened | integer | integer | |
since | string (date-time) | timestamp(3) with time zone | |
version | integer | integer | Revision counter; rises with every change. |
inventory.quality-inspection-lots
The inspection lots of the AQL plans and the changes of severity: inspection, source, lot size, code letter, sample size, acceptance and rejection number, defects, verdict (acceptable, not acceptable, skipped), severity, the change and its reason.
Files: data/inventory/quality-inspection-lots.json, data/inventory/quality-inspection-lots.csv, schema/inventory/quality-inspection-lots.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
state_id | string (uuid) | uuid | |
plan_id | string (uuid) | uuid | |
supplier_id | string or null | text | |
kind | string | text | One of los, wechsel. |
inspection_id | string (uuid) or null | uuid | |
source_type | string or null | text | One of wareneingang, fertigung, lieferschein. |
source_id | string (uuid) or null | uuid | |
source_line | string (uuid) or null | uuid | |
lot_size | integer or null | integer | |
code_letter | string or null | text | |
sample_size | integer or null | integer | |
accept_no | integer or null | integer | |
reject_no | integer or null | integer | |
defects | string (decimal text) or null | numeric(18,6) | |
verdict | string or null | text | One of annehmbar, nicht_annehmbar, uebersprungen. |
severity | string | text | One of normal, verschaerft, ausgesetzt. |
change | string or null | text | One of verschaerft, normal, ausgesetzt, skip_ein, skip_aus, manuell. |
reason | string or null | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text |
inventory.quality-control-limits
Frozen control limits of a variable check: chart (x-bar R, x-bar s, individuals), subgroup size, centre line and limits of location and spread, the window they were computed from, who froze them and when.
Files: data/inventory/quality-control-limits.json, data/inventory/quality-control-limits.csv, schema/inventory/quality-control-limits.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
plan_check_id | string (uuid) | uuid | |
chart | string | text | One of xquer_r, xquer_s, einzelwert. |
subgroup | integer | smallint | |
center | string (decimal text) | numeric(24,6) | |
ucl | string (decimal text) | numeric(24,6) | |
lcl | string (decimal text) | numeric(24,6) | |
spread_center | string (decimal text) | numeric(24,6) | |
spread_ucl | string (decimal text) | numeric(24,6) | |
spread_lcl | string (decimal text) | numeric(24,6) | |
basis | any JSON | jsonb | |
frozen_by | string | text | |
frozen_at | string (date-time) | timestamp(3) with time zone | |
version | integer | integer | Revision counter; rises with every change. |
inventory.quality-supplier-evaluations
Recorded supplier evaluations: supplier, period, the figures as computed then, points, grade A/B/C and whether it was chosen by hand, note, cancellation.
Files: data/inventory/quality-supplier-evaluations.json, data/inventory/quality-supplier-evaluations.csv, schema/inventory/quality-supplier-evaluations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
supplier_id | string | text | |
period_from | string (date) | date | |
period_to | string (date) | date | |
figures | any JSON | jsonb | |
score | string (decimal text) or null | numeric(7,2) | |
grade | string or null | text | One of A, B, C. |
grade_override | boolean | boolean | |
note | string or null | text | |
cancelled_at | string (date-time) or null | timestamp(3) with time zone | When it was cancelled. |
cancelled_by | string or null | text | |
cancel_reason | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
created_by | string | text |
inventory.quality-settings
The weights of quality and on-time delivery, the point limits of grades A and B and the tolerance in days of the supplier evaluation.
Files: data/inventory/quality-settings.json, data/inventory/quality-settings.csv, schema/inventory/quality-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
weight_quality | integer | smallint | |
weight_delivery | integer | smallint | |
grade_a | string (decimal text) | numeric(5,2) | |
grade_b | string (decimal text) | numeric(5,2) | |
delivery_tolerance_days | integer | smallint | |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
personnel.cost-rates
The internal cost of one working hour per person, overriding the company's (company.profile hourlyCostRate) in the post-calculation of orders.
Files: data/personnel/cost-rates.json, data/personnel/cost-rates.csv, schema/personnel/cost-rates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
person_id | string (uuid) | uuid | The personnel record (personnel.people id). |
rate | string (decimal text) or null | numeric(14,4) | The internal cost of one working hour in the company's currency; empty: the company's rate applies. |
version | integer | integer | Revision counter; rises with every change. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
updated_by | string or null | text |
money.invoice-payment-discounts
Skonto (cash discount) taken on invoices, and Skonto taken back: a reduction of the price that lowers what the customer owes, not money received.
Files: data/money/invoice-payment-discounts.json, data/money/invoice-payment-discounts.csv, schema/money/invoice-payment-discounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | Position in the invoice's payment journal, shared with money.invoice-payments. |
kind | string | text | skonto: a discount taken; correction: one taken back (corrects names it). One of skonto, correction. |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the invoice's currency: 2380 = 23.80 EUR. A correction is negative. |
received_on | string (date) | date | The day of the customer's payment the discount belongs to. |
reference | string or null | text | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.invoice-payment-discounts.id. |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
source | string | text | Since 1.74: manual or online (the cash discount of a payment link's Skonto stage, booked with the payment). One of manual, online. |
provider_ref | string or null | text | Since 1.74: on an online row the PaymentIntent of the payment it came with; empty otherwise. |
money.recurrence-price-changes
Price changes of recurring invoices: the lines in force from a day on (new prices, new or removed lines), who set them and when. Each period takes the last change on or before its first day, else the template's lines.
Files: data/money/recurrence-price-changes.json, data/money/recurrence-price-changes.csv, schema/money/recurrence-price-changes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
id | string (uuid) | uuid | |
rule_id | string (uuid) | uuid | |
valid_from | string (date) | date | The first day the lines apply; a period takes the lines of the last change on or before its first day. |
lines | any JSON | jsonb | The invoice lines from that day on, in the form of an invoice draft's lines (money.recurrences template). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
created_by | string | text |
money.invoice-payment-allocations
Offsets of a credit (an overpayment) with another open invoice of the same customer: two rows per offset, the invoice the credit left (negative) and the one it settled (positive). No money moved; what is paid on an invoice is its payments plus its offsets.
Files: data/money/invoice-payment-allocations.json, data/money/invoice-payment-allocations.csv, schema/money/invoice-payment-allocations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | Position in the invoice's payment journal, shared with money.invoice-payments. |
kind | string | text | One of verrechnung, correction. |
units | string (decimal text) | numeric | Amount as an integer number of minor units of the invoice's currency, signed: negative on the invoice the credit left, positive on the one it settled. A correction has the opposite sign. |
counter_invoice_id | string | text | The invoice on the other side (documents.invoices id). |
pair | string (uuid) | uuid | The offset both rows belong to; a correction takes back both rows of a pair under a pair of its own. |
applied_on | string (date) | date | |
reason | string or null | text | |
corrects | string (uuid) or null | uuid | Refers to money.invoice-payment-allocations.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.dunning-stops
Mahnstopps: an invoice or a customer (all its invoices) held out of dunning, with the reason and the last day it holds; a lifted one stays with the day and the person.
Files: data/money/dunning-stops.json, data/money/dunning-stops.csv, schema/money/dunning-stops.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
invoice_id | string or null | text | The invoice held (documents.invoices id); empty when the stop holds a customer. |
customer_id | string or null | text | The customer whose invoices are held (crm.customers id); empty when the stop holds one invoice. |
reason | string | text | Why the invoice or the customer is held, as entered. |
until | string (date) or null | date | The last day the stop holds; empty: until it is lifted. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
lifted_at | string (date-time) or null | timestamp with time zone | When the stop was lifted or replaced by a new one; empty while it stands. |
lifted_by | string or null | text | Who lifted or replaced it (account id). |
documents.order-retention-terms
The retention (Sicherheitseinbehalt) an order's final invoices hold back by default: a percent of the gross or net, or a security sum, and the months until it falls due.
Files: data/documents/order-retention-terms.json, data/documents/order-retention-terms.csv, schema/documents/order-retention-terms.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
order_id | string (uuid) | uuid | |
kind | string | text | prozent: value is a percent of the invoice's gross or net (basis); betrag: value is a security sum in the order's currency, shared by its final invoices. One of prozent, betrag. |
value | string (decimal text) | numeric | The percent (kind prozent) or the security sum (kind betrag), as a decimal. |
basis | string or null | text | brutto (gross) or netto (net) for kind prozent; empty for kind betrag. One of brutto, netto. |
months | integer | integer | Months after the service date until a final invoice's retention falls due (the end of the warranty). |
updated_by | string | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.invoice-retention-releases
Retentions (Sicherheitseinbehalt) of final invoices released by a guarantee, or held again: one row per change, the newest revision holds. A released retention falls due on its day.
Files: data/money/invoice-retention-releases.json, data/money/invoice-retention-releases.csv, schema/money/invoice-retention-releases.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
id | string (uuid) | uuid | |
company_id | string | text | The company; the same in every row. |
invoice_id | string | text | |
revision | integer | integer | Position in the invoice's history of releases; the newest holds. |
released | boolean | boolean | true: a guarantee replaced the retention, it falls due on released_on; false: held again, its own day holds. |
released_on | string (date) or null | date | The day the release took effect; empty when held again. |
actor_id | string | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.sepa-creditor
The company's SEPA creditor identifier (Gläubiger-ID), who set it and when.
Files: data/money/sepa-creditor.json, data/money/sepa-creditor.csv, schema/money/sepa-creditor.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
creditor_id | string | text | The SEPA creditor identifier (Gläubiger-ID) a direct debit names, as the bank writes it. |
updated_by | string | text | Who set it last (account id). |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.sepa-mandates
SEPA direct debit mandates of customers: reference, day signed, scheme (CORE or B2B), one-off or recurring, the account holder, IBAN and BIC; a revoked one stays with the day, the person and the reason.
Files: data/money/sepa-mandates.json, data/money/sepa-mandates.csv, schema/money/sepa-mandates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | The mandate; an invoice names it in its draft (lastschrift.mandatId). |
customer_id | string | text | The customer who signed the mandate (crm.customers id). |
reference | string | text | The mandate reference, unique in the company. |
signed_on | string (date) | date | The day the customer signed the mandate. |
scheme | string | text | CORE (SEPA Core direct debit) or B2B (SEPA business-to-business). One of CORE, B2B. |
one_off | boolean | boolean | true: the mandate collects once (OOFF); false: recurring. |
debtor_name | string | text | The account holder. |
debtor_iban | string | text | The IBAN of the account debited, without spaces. |
debtor_bic | string or null | text | The BIC of that account; empty: not given (NOTPROVIDED in the file). |
created_by | string | text | Who recorded the mandate (account id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
revoked_at | string (date-time) or null | timestamp with time zone | When it was revoked; it stays for the record. |
revoked_by | string or null | text | Who revoked it (account id); empty while it stands. |
revoke_reason | string or null | text | Why it was revoked, as entered. |
money.sepa-runs
SEPA direct debit runs: the message id of the pain.008 file, the collection day, the creditor as it stood (identifier, name, IBAN, BIC); a withdrawn run stays with the day, the person and the reason.
Files: data/money/sepa-runs.json, data/money/sepa-runs.csv, schema/money/sepa-runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | The run; its collections name it (money.sepa-collections run_id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
message_id | string | text | The message id (MsgId) of the run's pain.008.001.08 file. |
collection_date | string (date) | date | The requested collection day (ReqdColltnDt). |
creditor | any JSON | jsonb | The creditor as the run froze it, JSON: glaeubigerId, name, iban, bic. |
created_by | string | text | Who created the run (account id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
withdrawn_at | string (date-time) or null | timestamp with time zone | When the run was withdrawn (the bank did not take it); empty while it stands. |
withdrawn_by | string or null | text | Who withdrew it (account id). |
withdraw_reason | string or null | text | Why it was withdrawn, as entered. |
money.sepa-collections
The collections of a run, one per invoice: the mandate, the sequence (FRST, RCUR, OOFF), the scheme, the amount in EUR, the end-to-end id and remittance text, and the debtor as the file named it.
Files: data/money/sepa-collections.json, data/money/sepa-collections.csv, schema/money/sepa-collections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
run_id | string (uuid) | uuid | The run (money.sepa-runs id). |
invoice_id | string | text | The invoice collected (documents.invoices id). |
mandate_id | string (uuid) | uuid | The mandate it is collected by (money.sepa-mandates id). |
position | integer | integer | The place of the collection in its run, from 1. |
sequence | string | text | FRST (first of a recurring mandate), RCUR (further) or OOFF (one-off). One of FRST, RCUR, OOFF. |
scheme | string | text | One of CORE, B2B. |
amount | string (decimal text) | numeric(14,2) | The amount collected in EUR, the invoice's open amount when the run was made. |
end_to_end_id | string | text | The end-to-end id (EndToEndId) of the collection: the invoice number in the SEPA character set. |
remittance | string | text | The remittance information (Ustrd) the debtor reads on the statement. |
debtor | any JSON | jsonb | The debtor as the file named it, JSON: name, iban, bic, mandatsreferenz, unterschriebenAm. |
money.payment-accounts
The company's bank accounts and cash boxes: name, kind (bank, kasse or, since 1.68, zahlungsdienst: the Stripe balance an online payment connection keeps), number (IBAN or account number), BIC, currency, whether it is the standard account a payment goes through when it names none, archived.
Files: data/money/payment-accounts.json, data/money/payment-accounts.csv, schema/money/payment-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
name | string | text | |
art | string | text | One of bank, kasse, zahlungsdienst. |
nummer | string or null | text | |
bic | string or null | text | |
waehrung | string | text | |
standard | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string or null | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
archived_at | string (date-time) or null | timestamp with time zone | When the record was archived. Archived records are included and flagged here. |
anbieter | string or null | text | Since 1.68: the provider of an account kept by an online payment connection (stripe); its kind is zahlungsdienst; empty for every other account. |
money.payment-account-requests
Requests that created, changed or archived bank accounts.
Files: data/money/payment-account-requests.json, data/money/payment-account-requests.csv, schema/money/payment-account-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
account_id | string (uuid) | uuid | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.tax-settings
The company's VAT settings, every version kept: soll or ist (tax on agreed or received consideration), the filing period (monat, quartal, jahr, keine), the deadline extension, the special prepayment, the first month a version holds (ab, empty: from the beginning), who saved it and when.
Files: data/money/tax-settings.json, data/money/tax-settings.csv, schema/money/tax-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
entstehung | string | text | One of soll, ist. |
zeitraum | string | text | One of monat, quartal, jahr, keine. |
dauerfrist | boolean | boolean | |
sondervorauszahlung | string (decimal text) or null | numeric(14,2) | |
ab | string (date) or null | date | |
actor_id | string | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.tax-settings-requests
Requests that saved a version of the VAT settings.
Files: data/money/tax-settings-requests.json, data/money/tax-settings-requests.csv, schema/money/tax-settings-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
payload | any JSON | jsonb | |
version | integer | integer | Revision counter; rises with every change. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.tax-filings
Each time a VAT return (ustva) or EC sales list (zm) of a period was marked as filed (Übernahme): the day it was filed, the one it corrects (berichtigt), the form values as they stood (momentaufnahme), the data version, the settings it was prepared with, its stand, how many expenses it fixed, who recorded it and when.
Files: data/money/tax-filings.json, data/money/tax-filings.csv, schema/money/tax-filings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
meldung | string | text | One of ustva, zm. |
zeitraum | string | text | |
von | string (date) | date | |
bis | string (date) | date | |
uebernommen_am | string (date) | date | |
berichtigt | string (uuid) or null | uuid | |
fassung | string or null | text | |
stand | string | text | |
einstellungen | any JSON | jsonb | |
momentaufnahme | any JSON | jsonb | |
festgeschrieben | integer | integer | |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.tax-filing-items
The documents behind each filing: kind (rechnung, gutschrift, storno, zahlung, erstattung, verrechnung, skonto, ausgabe), the record's ID and number, an expense's version, the document date, the box (kennzahl), the buyer's VAT ID (EC sales list), the share in the return's currency and the tax case.
Files: data/money/tax-filing-items.json, data/money/tax-filing-items.csv, schema/money/tax-filing-items.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
filing_id | string (uuid) | uuid | |
position | integer | integer | |
art | string | text | One of rechnung, gutschrift, storno, zahlung, erstattung, verrechnung, skonto, ausgabe. |
beleg_id | string | text | |
rechnung_id | string or null | text | |
version | string (decimal text) or null | bigint | Revision counter; rises with every change. |
nummer | string or null | text | |
datum | string (date) | date | |
kennzahl | string | text | |
ust_id | string or null | text | |
anteil | string (decimal text) | numeric(18,2) | |
steuerfall | string | text |
money.tax-check-marks
Checks of a VAT return or EC sales list marked as not applicable (trifft nicht zu) or taken back, every change kept with who and when.
Files: data/money/tax-check-marks.json, data/money/tax-check-marks.csv, schema/money/tax-check-marks.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
meldung | string | text | One of ustva, zm. |
zeitraum | string | text | |
art | string | text | One of ausgaben_ungeprueft, ausgaben_ohne_steuerfall, eu_kaeufer_ohne_ustid, nicht_klassifizierbar, kurs_nicht_amtlich, kurs_fehlt, kennzahlen_nicht_geprueft, zm_abweichung, einstellungen_vorgabe, nach_uebernahme. |
version | integer | integer | Revision counter; rises with every change. |
trifft_nicht_zu | boolean | boolean | |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
bezuege | array | text[] |
documents.quote-links
Links of quotes for their customers to accept or decline online: quote, until when, page language, whether the customer is a consumer, the PDF as it was frozen with the link (under files/documents/quote-links/) and its SHA-256, who made it, opens, revocation; never the link's key.
Files: data/documents/quote-links.json, data/documents/quote-links.csv, schema/documents/quote-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
quote_id | string | text | |
valid_through | string (date) | date | |
expires_at | string (date-time) | timestamp with time zone | |
language | string | text | One of de, en, fr, es, it, pt-BR, ja, ko, nl, pl. |
consumer | boolean | boolean | |
pdf | object | bytea | |
pdf_sha256 | string | text | |
snapshot_hash | string | text | |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
revoked_at | string (date-time) or null | timestamp with time zone | When it was revoked; it stays for the record. |
revoked_by | string or null | text | |
open_count | integer | integer | |
first_opened_at | string (date-time) or null | timestamp with time zone | |
last_opened_at | string (date-time) or null | timestamp with time zone | |
withdrawal | boolean | boolean | |
withdrawal_text | string or null | text | |
withdrawal_text_sha256 | string or null | text | |
early_start | boolean | boolean |
documents.quote-link-decisions
The customer's decision over a quote's link: accepted or declined, the name typed, the reason, the positions chosen, the total accepted, the page language, the client's network (IPv4 /24, IPv6 /64) and device class, the time.
Files: data/documents/quote-link-decisions.json, data/documents/quote-link-decisions.csv, schema/documents/quote-link-decisions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
link_id | string (uuid) | uuid | |
quote_id | string | text | |
outcome | string | text | One of Angenommen, Abgelehnt. |
name | string or null | text | |
reason | string or null | text | |
selection | any JSON | jsonb | |
total | any JSON | jsonb | |
language | string | text | One of de, en, fr, es, it, pt-BR, ja, ko, nl, pl. |
network | string or null | text | |
device | string | text | One of phone, tablet, desktop, other. |
decided_at | string (date-time) | timestamp with time zone | |
early_start | boolean or null | boolean |
documents.quote-link-requests
Requests that created or revoked a quote's link.
Files: data/documents/quote-link-requests.json, data/documents/quote-link-requests.csv, schema/documents/quote-link-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of create, revoke. |
link_id | string (uuid) | uuid | |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.online-payment-connections
The company's connections to Stripe for online payment: new (miphu created the Stripe account) or existing (the company's own, connected through Stripe's OAuth), country, currency, status (angelegt, in_pruefung, aktiv, eingeschraenkt, getrennt) with what Stripe reported (payments and payouts enabled, details due, Stripe's reason, deadline), the payment account it keeps, who connected it and when, and how it ended (firma or stripe).
Files: data/money/online-payment-connections.json, data/money/online-payment-connections.csv, schema/money/online-payment-connections.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
provider | string | text | |
origin | string | text | One of neu, bestehend. |
mode | string | text | One of test, live. |
country | string | text | |
currency | string or null | text | |
status | string | text | One of angelegt, in_pruefung, aktiv, eingeschraenkt, getrennt. |
charges_enabled | boolean | boolean | |
payouts_enabled | boolean | boolean | |
details_submitted | boolean | boolean | |
currently_due | integer | integer | |
past_due | integer | integer | |
eventually_due | integer | integer | |
disabled_reason | string or null | text | |
current_deadline | string (date-time) or null | timestamp with time zone | |
bank_account_id | string (uuid) or null | uuid | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
refreshed_at | string (date-time) or null | timestamp with time zone | |
ended_at | string (date-time) or null | timestamp with time zone | |
ended_by | string or null | text | |
ended_cause | string or null | text | One of firma, stripe. |
version | integer | integer | Revision counter; rises with every change. |
money.online-payment-settings
The online payment settings: partial payments allowed, the payment link on new invoices, version.
Files: data/money/online-payment-settings.json, data/money/online-payment-settings.csv, schema/money/online-payment-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
teilzahlung | boolean | boolean | |
auf_rechnung | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
updated_by | string | text | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.online-payment-requests
Requests that connected, ended or set the online payment, with what each answered.
Files: data/money/online-payment-requests.json, data/money/online-payment-requests.csv, schema/money/online-payment-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
action | string | text | One of connect, connect_existing, disconnect, settings, link_create, link_revoke, refund. |
payload | any JSON | jsonb | |
result | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
documents.approval-rules
Approval rules: from which net in the company's currency, discount, new supplier or expense category ordering a purchase order, issuing a quote, issuing an invoice with a document discount or reviewing an expense needs an approval; an inactive rule stays.
Files: data/documents/approval-rules.json, data/documents/approval-rules.csv, schema/documents/approval-rules.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
document_kind | string | text | One of bestellung, angebot, rechnung, ausgabe. |
min_net | string (decimal text) or null | numeric(18,2) | |
min_discount | string (decimal text) or null | numeric(7,4) | |
new_supplier | boolean | boolean | |
category | string or null | text | |
active | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
created_by | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
documents.approval-requests
Approval requests: the record (kind, id, version), the fingerprint of the content that was asked for, what made the rules apply, the note, the status and when the approval was used by its step.
Files: data/documents/approval-requests.json, data/documents/approval-requests.csv, schema/documents/approval-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
document_kind | string | text | One of bestellung, angebot, rechnung, ausgabe. |
record_id | string | text | |
record_version | integer | integer | |
fingerprint | string | text | |
occasion | any JSON | jsonb | |
note | string or null | text | |
status | string | text | One of offen, genehmigt, abgelehnt, zurueckgezogen, verbraucht. |
requested_by | string | text | |
requested_at | string (date-time) | timestamp(3) with time zone | |
used_at | string (date-time) or null | timestamp(3) with time zone | |
used_by | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
documents.approval-decisions
Decisions on approval requests: approved or rejected, the reason, who decided and for whom as deputy.
Files: data/documents/approval-decisions.json, data/documents/approval-decisions.csv, schema/documents/approval-decisions.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
level | integer | smallint | |
outcome | string | text | One of genehmigt, abgelehnt. |
reason | string or null | text | |
decided_by | string | text | |
on_behalf_of | string or null | text | |
decided_at | string (date-time) | timestamp(3) with time zone |
team.approval-deputies
Who decides approvals in a person's stead on the days of their approved absence.
Files: data/team/approval-deputies.json, data/team/approval-deputies.csv, schema/team/approval-deputies.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
account_id | string | text | |
deputy_id | string or null | text | |
version | integer | integer | Revision counter; rises with every change. |
set_by | string | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
documents.approval-commands
Requests that asked for, decided or withdrew approvals, and changed approval rules or deputies.
Files: data/documents/approval-commands.json, data/documents/approval-commands.csv, schema/documents/approval-commands.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of request, decide, withdraw, rule_create, rule_update, deputy. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
target_id | string | text | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
company.withdrawal-terms
The company's terms for consumers who accept a quote over a link: its Widerrufsbelehrung (information on the right of withdrawal) and whether a consumer may ask for an early start, with the version and the time of the last change.
Files: data/company/withdrawal-terms.json, data/company/withdrawal-terms.csv, schema/company/withdrawal-terms.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
withdrawal_text | string or null | text | |
early_start | boolean | boolean | |
version | integer | integer | Revision counter; rises with every change. |
changed_at | string (date-time) | timestamp with time zone |
documents.quote-link-withdrawals
A consumer's withdrawal from a contract accepted over a quote's link (§ 356a BGB): the link, the quote, the name typed, the e-mail address the acknowledgement went to, the page language, the client's network (IPv4 /24, IPv6 /64) and device class, the time it was received, and how the acknowledgement mail went (sent or failed, with the delivery code).
Files: data/documents/quote-link-withdrawals.json, data/documents/quote-link-withdrawals.csv, schema/documents/quote-link-withdrawals.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
link_id | string (uuid) | uuid | |
quote_id | string | text | |
name | string | text | |
email | string | text | |
language | string | text | One of de, en, fr, es, it, pt-BR, ja, ko, nl, pl. |
network | string or null | text | |
device | string | text | One of phone, tablet, desktop, other. |
received_at | string (date-time) | timestamp with time zone | |
receipt_state | string | text | One of ausstehend, versendet, fehlgeschlagen. |
receipt_error | string or null | text | |
receipt_at | string (date-time) or null | timestamp with time zone |
money.online-payment-links
The payment links of invoices: the invoice, the key version its address was made with, who made it and when, how often and when it was opened, and when, by whom and why it ended (widerrufen; a cancelled invoice or an ended connection end it without a row change).
Files: data/money/online-payment-links.json, data/money/online-payment-links.csv, schema/money/online-payment-links.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
invoice_id | string | text | |
key_version | integer | integer | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_by | string | text | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
ended_at | string (date-time) or null | timestamp with time zone | |
ended_by | string or null | text | |
ended_cause | string or null | text | |
opened | integer | integer | |
first_opened_at | string (date-time) or null | timestamp with time zone | |
last_opened_at | string (date-time) or null | timestamp with time zone |
money.online-payment-checkouts
The Stripe payment pages a payment link opened: the link, Stripe's session id, the amount in minor units and its currency, the cash discount stage it was opened with, whether it was a partial payment, status (angelegt, offen, abgeschlossen, in_bearbeitung, abgelaufen), when it was made, expires and last changed.
Files: data/money/online-payment-checkouts.json, data/money/online-payment-checkouts.csv, schema/money/online-payment-checkouts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
link_id | string (uuid) | uuid | |
session_id | string or null | text | |
units | string (decimal text) | bigint | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
currency | string | text | |
skonto | any JSON | jsonb | |
partial | boolean | boolean | |
status | string | text | One of angelegt, offen, abgeschlossen, in_bearbeitung, abgelaufen, fehlgeschlagen. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
expires_at | string (date-time) or null | timestamp with time zone | |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.online-payments
The online payments of invoices through Stripe: the invoice, the link and Stripe payment page, Stripe's PaymentIntent and charge, the method (card, sepa_debit, klarna …), the amount in the invoice's minor units, status (in_bearbeitung, bezahlt, fehlgeschlagen), when Stripe credited it and when it becomes available, Stripe's fee in minor units (the company's own expense, no VAT, not deducted from the invoice), and the payment and cash discount booked from it.
Files: data/money/online-payments.json, data/money/online-payments.csv, schema/money/online-payments.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
invoice_id | string | text | |
link_id | string (uuid) or null | uuid | |
checkout_id | string (uuid) or null | uuid | |
payment_intent | string | text | |
charge | string or null | text | |
method | string or null | text | |
units | string (decimal text) | bigint | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
currency | string | text | |
status | string | text | One of in_bearbeitung, bezahlt, fehlgeschlagen. |
credited_at | string (date-time) or null | timestamp with time zone | |
available_on | string (date) or null | date | |
fee_units | string (decimal text) or null | bigint | |
balance_transaction | string or null | text | |
payment_entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
skonto_entry_id | string (uuid) or null | uuid | Refers to money.invoice-payment-discounts.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.online-payment-refunds
Refunds of online payments, made in miphu (with the request and who asked) or in Stripe's dashboard: Stripe's refund id, the amount in minor units, Stripe's status and failure reason, the refund booked from it and its correction where it failed.
Files: data/money/online-payment-refunds.json, data/money/online-payment-refunds.csv, schema/money/online-payment-refunds.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
charge_id | string (uuid) | uuid | |
provider_refund | string or null | text | |
units | string (decimal text) | bigint | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
status | string | text | One of angefordert, pending, succeeded, failed, canceled, requires_action. |
reason | string or null | text | |
failure_reason | string or null | text | |
request_id | string (uuid) or null | uuid | Key the app sent with the request, so a repeated request is recognised. |
requested_by | string or null | text | |
entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
correction_entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.online-payment-disputes
Disputes (chargebacks) of online payments: Stripe's dispute id, the amount in minor units, the reason, Stripe's status, the evidence deadline, the dispute fee in minor units, and the refund (money withdrawn) and payment (money reinstated) booked from it.
Files: data/money/online-payment-disputes.json, data/money/online-payment-disputes.csv, schema/money/online-payment-disputes.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
charge_id | string (uuid) | uuid | |
provider_dispute | string | text | |
units | string (decimal text) | bigint | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
reason | string or null | text | |
status | string | text | |
evidence_due_by | string (date-time) or null | timestamp with time zone | |
fee_units | string (decimal text) | bigint | |
returned_entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
reinstated_entry_id | string (uuid) or null | uuid | Refers to money.invoice-payments.id. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.online-payment-payouts
Payouts from the Stripe balance to the company's bank: Stripe's payout id, the amount in Stripe's smallest unit with its exponent, currency, arrival date, status.
Files: data/money/online-payment-payouts.json, data/money/online-payment-payouts.csv, schema/money/online-payment-payouts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
provider_payout | string | text | |
units | string (decimal text) | bigint | Amount as an integer number of minor units of the row's currency (see minor): 4001 = 40.01 when minor is 2. |
exponent | integer | integer | |
currency | string | text | |
arrival_date | string (date) or null | date | |
status | string | text | One of pending, in_transit, paid, failed, canceled. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.expense-claims
Expense claims: the expenses (money.expenses) a person paid out of their own pocket and is reimbursed for, with the person, the trip the receipt belongs to (if any) and when it was submitted.
Files: data/money/expense-claims.json, data/money/expense-claims.csv, schema/money/expense-claims.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
expense_id | string (uuid) | uuid | |
account_id | string | text | |
trip_id | string (uuid) or null | uuid | |
submitted_at | string (date-time) | timestamp(3) with time zone |
money.trips
Business trips of a person: status (entwurf, eingereicht), purpose, start and end, what was entered (the stays with country and city from a local time on, the meals provided per day and what the person paid for them, the nights and how each was paid, the drives with vehicle and kilometres, since when the person works at the same place), the calculation frozen at submission (the rules applied, per day, night and drive the amount reimbursed and its tax-free part, the totals) and the expense it created.
Files: data/money/trips.json, data/money/trips.csv, schema/money/trips.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
account_id | string | text | |
status | string | text | One of entwurf, eingereicht. |
version | integer | integer | Revision counter; rises with every change. |
purpose | string | text | |
starts_at | string (local date-time) | timestamp(0) without time zone | Local time the trip began, as entered, without a time zone (see Encoding). |
ends_at | string (local date-time) | timestamp(0) without time zone | Local time the trip ended, as entered, without a time zone. |
input | any JSON | jsonb | |
calculation | any JSON | jsonb | |
expense_id | string (uuid) or null | uuid | |
submitted_at | string (date-time) or null | timestamp(3) with time zone | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
money.trip-requests
Requests that created, changed, submitted or withdrew trips, linked an expense claim to a trip or changed the company's travel rates.
Files: data/money/trip-requests.json, data/money/trip-requests.csv, schema/money/trip-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
kind | string | text | One of create, update, submit, withdraw, settings, link. |
payload_hash | string | text | SHA-256 of the request content, so a repeated request is recognised. |
target_id | string | text | |
applied_version | integer | integer | |
created_at | string (date-time) | timestamp(3) with time zone | When the record was created. |
company.travel-rates
The company's own travel rates, with who saved them and when: currency, the meal allowance for a whole and a partial day, the rate per night and per kilometre by vehicle. They are what the company reimburses and, where no country data exist, the only basis; empty when none are set.
Files: data/company/travel-rates.json, data/company/travel-rates.csv, schema/company/travel-rates.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
rates | any JSON | jsonb | |
updated_by | string | text | |
updated_at | string (date-time) | timestamp(3) with time zone | When the record last changed. |
audit.protocol-events
The company protocol, two hash chains (sign-ins; everything administrative): per event its chain and number, time, kind, who (person, SwiftLabs support, unknown, system), the AI connection, the record, its details, the Audit row it points at with that row's hash, and its own hash and its predecessor's. The network of a sign-in is not exported.
Files: data/audit/protocol-events.json, data/audit/protocol-events.csv, schema/audit/protocol-events.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
kette | string | text | |
nr | string (decimal text) | bigint | |
zeit | string (date-time) | timestamp with time zone | |
ereignis | string | text | One of anmeldung, anmeldung_fehlgeschlagen, abmeldung, zugang, ki_verbindung, ki_einstellungen, modul, datenexport, datev_uebergabe, buchhaltung_uebergabe, steuer_uebernahme, freigaberegel, freigabevertretung, zahlungsdienst, support, protokoll_export, protokoll_aufbewahrung, protokoll_bereinigt, hauptbuch_periode, hauptbuch_zuordnung, hauptbuch_konto, hauptbuch_einstellung, hauptbuch_saldenbestaetigung. |
akteur_art | string | text | One of person, support, kunde, unbekannt, system. |
akteur_id | string or null | text | |
verbindung_id | string (uuid) or null | uuid | |
datensatz_art | string or null | text | |
datensatz_id | string or null | text | |
angaben | any JSON | jsonb | |
audit_id | string or null | text | |
audit_hash | string or null | text | |
vorher | string | text | |
hash | string | text |
audit.protocol-chains
The head of each protocol chain (last number and hash) and where the retention cut it.
Files: data/audit/protocol-chains.json, data/audit/protocol-chains.csv, schema/audit/protocol-chains.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kette | string | text | One of anmeldung, verwaltung. |
nr | string (decimal text) | bigint | |
hash | string | text | |
basis_nr | string (decimal text) | bigint | |
basis_hash | string | text | |
bereinigt_am | string (date-time) or null | timestamp with time zone |
audit.protocol-settings
How many years the company keeps its protocol, its version, who set it and when.
Files: data/audit/protocol-settings.json, data/audit/protocol-settings.csv, schema/audit/protocol-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
jahre | integer | integer | |
version | integer | integer | Revision counter; rises with every change. |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
actor_id | string | text | Account that sent the request (team.accounts id). |
updated_at | string (date-time) | timestamp with time zone | When the record last changed. |
money.ledger-settings
The settings of the books, every version kept: chart of accounts (skr03, skr04, neutral), account length, first month of the fiscal year, first numbers of the personal accounts, the first day a version holds, whether it came from DATEV, the country or a person.
Files: data/money/ledger-settings.json, data/money/ledger-settings.csv, schema/money/ledger-settings.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
kontenrahmen | string | text | One of skr03, skr04, neutral. |
kontolaenge | integer | smallint | |
wj_beginn_monat | integer | smallint | |
debitor_start | string (decimal text) | bigint | |
kreditor_start | string (decimal text) | bigint | |
mitarbeiter_start | string (decimal text) | bigint | |
gueltig_ab | string (date) | date | |
quelle | string | text | One of datev, land, hand. |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) or null | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-accounts
The company's own accounts and its changes to accounts of the chart (name, archived), every version kept: number, name, function, tax case and rate, place in the balance sheet or income statement.
Files: data/money/ledger-accounts.json, data/money/ledger-accounts.csv, schema/money/ledger-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
nummer | string | text | |
version | integer | integer | Revision counter; rises with every change. |
name | string or null | text | |
funktion | string | text | |
steuerfall | string or null | text | |
satz | string or null | text | |
gliederung | string or null | text | |
archiviert | boolean | boolean | |
gueltig_ab | string (date) | date | |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-account-map
Which account a key books to, every version kept: revenue by tax category and rate (revenue:<category>|<rate>), cost by expense category (expense:<category>, expense:* for the rest); an empty number means the function's standard account.
Files: data/money/ledger-account-map.json, data/money/ledger-account-map.csv, schema/money/ledger-account-map.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
version | integer | integer | Revision counter; rises with every change. |
schluessel | string | text | |
nummer | string or null | text | |
gueltig_ab | string (date) | date | |
quelle | string | text | One of datev, hand. |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) or null | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-partner-accounts
Personal accounts of customers, suppliers and employees: one number per partner for good (taken over from DATEV with the same numbers), the partner's name, country, VAT ID and tax number by version.
Files: data/money/ledger-partner-accounts.json, data/money/ledger-partner-accounts.csv, schema/money/ledger-partner-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
kind | string | text | One of debitor, kreditor, mitarbeiter. |
key | string | text | |
version | integer | integer | Revision counter; rises with every change. |
nummer | string (decimal text) | bigint | |
name | string or null | text | |
land | string or null | text | |
ust_id | string or null | text | |
steuernummer | string or null | text | |
gueltig_ab | string (date) | date | |
quelle | string | text | One of datev, lauf. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-fiscal-years
Fiscal years: first and last day, whether it is a short year, the home currency the journal books it in, the settings it was created with.
Files: data/money/ledger-fiscal-years.json, data/money/ledger-fiscal-years.csv, schema/money/ledger-fiscal-years.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
jahr | string | text | |
beginn | string (date) | date | |
ende | string (date) | date | |
rumpf | boolean | boolean | |
waehrung | string | text | |
setting_version | integer | integer | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-fiscal-year-events
When a fiscal year was opened and closed.
Files: data/money/ledger-fiscal-year-events.json, data/money/ledger-fiscal-year-events.csv, schema/money/ledger-fiscal-year-events.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
jahr | string | text | |
art | string | text | One of eroeffnet, abgeschlossen. |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-periods
The periods of each fiscal year: its months and period 13 (the closing period on its last day).
Files: data/money/ledger-periods.json, data/money/ledger-periods.csv, schema/money/ledger-periods.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
jahr | string | text | |
periode | integer | smallint | |
von | string (date) | date | |
bis | string (date) | date |
money.ledger-period-events
A period closed for good: by a filed VAT return, by hand, by a DATEV or CSV export, by the annual closing; with its reference, who and when.
Files: data/money/ledger-period-events.json, data/money/ledger-period-events.csv, schema/money/ledger-period-events.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
jahr | string | text | |
periode | integer | smallint | |
art | string | text | |
grund | string | text | One of ustva, hand, export, abschluss. |
bezug | string or null | text | |
actor_id | string or null | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) or null | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-entries
The journal: each entry with its number in the fiscal year, its link in the company's hash chain (folge, prev_hash, hash), document, posting and service date, booking period and tax period, its source and receipt, text, the entry it reverses, its flags (system_korrektur, nachgebucht, vorjahr_korrektur), the version of the rules and data it was booked with, who recorded it and when.
Files: data/money/ledger-entries.json, data/money/ledger-entries.csv, schema/money/ledger-entries.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
jahr | string | text | |
journal_nr | integer | integer | |
folge | string (decimal text) | bigint | |
belegdatum | string (date) | date | |
buchungsdatum | string (date) | date | |
leistungsdatum | string (date) or null | date | |
periode | integer | smallint | |
steuerperiode | string or null | text | |
quelle | string | text | One of invoice, payment, refund, allocation, discount, advance, expense, expense_payment, online_fee, returned, online_payout, payroll, manual, opening, closing, depreciation, reversal. |
quelle_id | string or null | text | |
quelle_version | string or null | text | |
dokument_id | string (uuid) or null | uuid | |
eigenbeleg_grund | string or null | text | |
belegnummer | string or null | text | |
text | string | text | |
reverses | string (uuid) or null | uuid | |
kennzeichen | array | text[] | |
regel_fassung | integer | integer | |
daten_fassung | any JSON | jsonb | |
erfasser_art | string | text | One of person, ki, system. |
erfasser | string or null | text | |
verbindung | string (uuid) or null | uuid | |
erfasst_am | string (date-time) | timestamp with time zone | |
prev_hash | string | text | |
hash | string | text |
money.ledger-lines
The lines of each entry: account, kind and type, amount in the fiscal year's home currency (debit positive, credit negative), the document's currency, amount and rate where it differs, tax case, rate and base, the line carrying its tax, the partner as booked and the open item.
Files: data/money/ledger-lines.json, data/money/ledger-lines.csv, schema/money/ledger-lines.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. |
entry_id | string (uuid) | uuid | |
zeile | integer | smallint | |
konto | string | text | |
kontoart | string | text | One of sach, debitor, kreditor, mitarbeiter. |
funktion | string | text | |
kontotyp | string | text | One of aktiv, passiv, aufwand, ertrag. |
betrag | string (decimal text) | numeric | |
waehrung | string or null | text | |
fremdbetrag | string (decimal text) or null | numeric | |
kurs | string (decimal text) or null | numeric | |
kurs_quelle | string or null | text | |
steuerfall | string or null | text | |
satz | string or null | text | |
bmg | string (decimal text) or null | numeric | |
steuer_zu | integer or null | smallint | |
partner_kind | string or null | text | One of debitor, kreditor, mitarbeiter. |
partner_key | string or null | text | |
partner_name | string or null | text | |
partner_land | string or null | text | |
partner_ust_id | string or null | text | |
partner_steuernummer | string or null | text | |
op | string or null | text |
money.ledger-chain
The head of the company's journal chain (last link and hash) and the newest check of it.
Files: data/money/ledger-chain.json, data/money/ledger-chain.csv, schema/money/ledger-chain.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
folge | string (decimal text) | bigint | |
hash | string | text | |
uebernommen | boolean | boolean | |
geprueft_am | string (date-time) or null | timestamp with time zone | |
geprueft | any JSON | jsonb |
money.ledger-runs
The posting runs: what started each (job, report, switching on, closing), the rules' version, how many records it booked and which it could not, when.
Files: data/money/ledger-runs.json, data/money/ledger-runs.csv, schema/money/ledger-runs.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
ausloeser | string | text | One of job, auswertung, einschalten, schliessen. |
regel_fassung | integer | integer | |
beginn | string (date-time) | timestamp with time zone | |
ende | string (date-time) | timestamp with time zone | |
saetze | any JSON | jsonb | |
fehler | any JSON | jsonb | |
offen | integer | integer |
money.ledger-requests
Requests that closed a period, changed the account mapping, an account or the settings of the books, or confirmed a balance, with their answer.
Files: data/money/ledger-requests.json, data/money/ledger-requests.csv, schema/money/ledger-requests.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
actor_id | string | text | Account that sent the request (team.accounts id). |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
art | string | text | One of periode, zuordnung, konto, einstellung, saldenbestaetigung. |
payload | any JSON | jsonb | |
antwort | any JSON | jsonb | |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-payment-accounts
The general ledger account each payment account (bank account, cash box, payment service) was given at its first booking.
Files: data/money/ledger-payment-accounts.json, data/money/ledger-payment-accounts.csv, schema/money/ledger-payment-accounts.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
zahlungskonto | string (uuid) | uuid | |
nummer | string | text | |
funktion | string | text | One of bank, kasse, zahlungsdienst. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
money.ledger-balance-confirmations
Balances confirmed for a payment account on a day with the statement as receipt (a document): the balance and currency, the general ledger account, the journal's balance then, who and when.
Files: data/money/ledger-balance-confirmations.json, data/money/ledger-balance-confirmations.csv, schema/money/ledger-balance-confirmations.schema.json
| Column | JSON | SQL type | Description |
|---|---|---|---|
company_id | string | text | The company; the same in every row. Refers to company.profile.id. |
id | string (uuid) | uuid | |
zahlungskonto | string (uuid) | uuid | |
konto | string or null | text | |
stichtag | string (date) | date | |
saldo | string (decimal text) | numeric | |
waehrung | string | text | |
saldo_journal | string (decimal text) or null | numeric | |
dokument_id | string (uuid) | uuid | |
actor_id | string | text | Account that sent the request (team.accounts id). |
verbindung | string (uuid) or null | uuid | |
request_id | string (uuid) | uuid | Key the app sent with the request, so a repeated request is recognised. |
created_at | string (date-time) | timestamp with time zone | When the record was created. |
