Vorlagenformat

Eine Kurzreferenz zum Schreiben Ihrer eigenen .invoyatemplate-Datei.

Eine Vorlage ist eine JSON-Datei mit der Endung .invoyatemplate. Sie beschreibt nur ein Layout: welche Abschnitte die Rechnung hat, in welcher Reihenfolge und wie sie aussehen. Die Angaben setzt Invoya ein, und jede Beschriftung – „Rechnung an“, „Gesamt“ – druckt die App in der Sprache, auf die sie eingestellt ist.

Am schnellsten geht es mit einer Vorlage aus der Galerie: Laden Sie eine herunter, ändern Sie sie in einem beliebigen Texteditor und öffnen Sie sie in Invoya – dort sehen Sie das Ergebnis, bevor Sie sie hinzufügen.

Angezeigt wird, was eine Vorlage mit "formatVersion": "1.3" verwenden kann. Sie funktioniert ab Invoya 1.3.

Die Datei

Die Schlüssel auf oberster Ebene der Datei.

SchlüsselWertBedeutung
formaterforderlich"invoya.invoice-template"Kennzeichnet die Datei als Invoya-Vorlage.
formatVersionerforderlich"1.3"Die älteste Invoya-Version, in der die Vorlage funktioniert, zum Beispiel "1.3". Ältere Versionen lehnen die Datei ab. Geben Sie die Version an, mit der der neueste Schlüssel oder Block kam, den Ihre Vorlage verwendet – die Versionsauswahl oben zeigt, was jede Version kennt.
iderforderlich"…"Eine eindeutige Kennung, zum Beispiel com.ihrname.papier. Fügen Sie eine Vorlage mit einer Kennung hinzu, die Sie schon haben, wird Ihre Kopie ersetzt.
nameerforderlich{ "en": "…", "de": "…", … }Der Name in der App, nach Sprachcode: en, de, ru, uk. en ist erforderlich und gilt für jede Sprache, die fehlt.
author"…"Wer die Vorlage erstellt hat.
page{ … }Blattgröße und Ränder. Siehe unten.
style{ … }Schrift, Schriftgröße und Farben. Siehe unten.
letterhead["business", …]Standard: []Die Kennungen der Blöcke, die Ihren Briefkopf bilden. Die App zeigt sie als Vorschau unter „Firmendaten“.
blockserforderlich[ … ]Die Abschnitte der Rechnung, von oben nach unten. Siehe unten.

page

Maße in Punkt: 1 pt ist 1/72 Zoll, ein A4-Blatt misst 595 × 842 pt. Der rechte Rand ist immer so breit wie der linke.

SchlüsselWertBedeutung
size"a4"Standard: "a4"Das Blatt. Vorerst gibt es nur A4.
margins.top72Standard: 72Abstand über dem ersten Block.
margins.left72Standard: 72Abstand links – und rechts.
margins.bottom72Standard: 72Abstand unter der letzten Zeile, bevor der Inhalt auf die nächste Seite umbricht.
margins.footer30Standard: 30Abstand vom unteren Blattrand bis zur Fußzeile.

style

Jeder Schlüssel hier ist optional.

SchlüsselWertBedeutung
bodySize8.5Standard: 8Schriftgröße in Punkt.
font"sans" | "serif" | "mono" | "rounded" | "humanist"Standard: "sans"Die Schrift, nach Rolle: sans ist Helvetica, serif Times New Roman, mono Courier, rounded Avenir Next, humanist Optima. Alle fünf gibt es auf jedem Mac, iPhone und iPad, die Rechnung sieht also überall gleich aus.
accent"#rrggbb"Standard: "#eff0f1"Farbe des gefüllten Titelbands und des Tabellenkopfs.
accentText"#rrggbb"Standard: "#000000"Farbe der Schrift auf der Akzentfarbe. Ein dunkler Akzent braucht eine helle Schrift.
logoHeight42Höhe des Logos, wenn es neben Ihren Angaben steht. Ohne diesen Wert ist das Logo so hoch wie die Angaben.

blocks

Die Blöcke werden in der Reihenfolge der Liste untereinander gedruckt. Jeder Block hat einen type und kann eine id haben – die braucht nur die letterhead-Liste. Ein Typ darf mehrmals vorkommen, vor allem spacer.

"type": "business"

Ihre Firmendaten, wie unter „Firmendaten“ eingetragen, mit Ihrem Logo.

SchlüsselWertBedeutung
align"left" | "center" | "right"Standard: "right"Auf welcher Seite die Angaben stehen.
logo"none" | "left" | "right" | "above" | "banner"Standard: "left"Wo das Logo steht. left und right stellen es neben die Angaben – das geht nur auf der gegenüberliegenden Seite; auf derselben Seite rückt es darüber. above setzt es in eine eigene Zeile über die Angaben, banner ist ein größeres, zentriertes Logo ganz oben.

"type": "spacer"

Leerraum.

SchlüsselWertBedeutung
heighterforderlich24In Punkt.

"type": "title"

Das Wort „Rechnung“.

SchlüsselWertBedeutung
align"left" | "center" | "right"Standard: "center"Wo es steht.
filledtrue | falseStandard: trueSetzt es auf ein Band in der Akzentfarbe.

"type": "invoiceMeta"

Rechnungsnummer und Daten.

SchlüsselWertBedeutung
align"left" | "center" | "right"Standard: "right"Auf welcher Seite sie stehen.
fields["number", "invoiceDate", "dueDate"]Welche Zeilen erscheinen, in dieser Reihenfolge.

"type": "client"

An wen die Rechnung geht.

SchlüsselWertBedeutung
caption"billTo"Setzt die Zeile „Rechnung an“ über den Kunden. Ohne diesen Schlüssel gibt es keine Beschriftung.

"type": "items"

Die Tabelle der Rechnungspositionen – der einzige Block, der auf die nächste Seite weiterläuft, wenn eine Rechnung lang wird.

SchlüsselWertBedeutung
columns["index", "description", "unit", "qty", "rate", "amount"]Welche Spalten erscheinen, in dieser Reihenfolge: Positionsnummer, Beschreibung, Einheit, Menge, Preis, Betrag.
borderstrue | falseStandard: trueZeichnet die Linien der Tabelle.

"type": "totals"

Die Summen unter der Tabelle.

SchlüsselWertBedeutung
align"left" | "center" | "right"Standard: "right"Auf welcher Seite sie stehen.
lines["subtotal", "discount", "taxes", "total"]Welche Zeilen erscheinen, in dieser Reihenfolge.

"type": "terms"

Die Bedingungen des Vertrags. Nur gedruckt, wenn der Vertrag welche hat.

Keine Optionen.

"type": "payment"

Ihre Bankverbindung.

SchlüsselWertBedeutung
qr"auto" | "never"Standard: "auto"auto druckt einen SEPA-QR-Code für die Zahlung, wenn die Rechnung in Euro ist, Ihre IBAN gültig ist und „QR auf Rechnungen in EUR drucken“ eingeschaltet ist. never lässt ihn weg.

"type": "footer"

Steht am Fuß jeder Seite, egal wo er in der Liste steht. Jede Vorlage braucht einen, der den Fußzeilentext druckt.

SchlüsselWertBedeutung
left"pageXofN"pageXofN druckt links „Seite 1 von 2“ – nur, wenn die Rechnung mehr als eine Seite hat.
centererforderlich"footerText"footerText druckt mittig den Fußzeilentext der Rechnung: „Erstellt mit Invoya app“ oder den eigenen Text aus Einstellungen → Rechnungsvorlage → Fußzeile.

Was die App ablehnt

  • Einen Blocktyp oder Wert, der nicht auf dieser Seite steht. Invoya lehnt dann die ganze Datei ab, statt eine halbe Rechnung zu drucken.
  • Eine Vorlage ohne footer-Block mit "center": "footerText". Jede Rechnung druckt ihren Fußzeilentext, also muss eine Vorlage Platz dafür lassen.
  • Eine formatVersion, die neuer ist als die App. Aktualisieren Sie Invoya und öffnen Sie die Datei erneut.
  • Eine Datei, die größer als 16 KB ist.

Gut zu wissen

  • Farben werden als #rrggbb geschrieben. Eine Farbe, die sich nicht lesen lässt, wird schwarz gedruckt.
  • Eine Vorlage kann keine eigenen Schriften, Bilder oder Texte mitbringen: Die Schrift ist eine der fünf oben, das Logo ist das in der App hinterlegte, und alle Beschriftungen kommen aus der App.

Beispiel

„Klassisch“, die Vorlage, mit der jede Installation beginnt:

{
  "format": "invoya.invoice-template",
  "formatVersion": "1.3",
  "id": "app.invoya.classic",
  "name": {
    "en": "Classic",
    "de": "Klassisch",
    "ru": "Классический",
    "uk": "Класичний"
  },
  "author": "Invoya",
  "page": {
    "size": "a4",
    "margins": { "top": 72, "left": 72, "bottom": 72, "footer": 30 }
  },
  "style": { "bodySize": 8 },
  "letterhead": ["business"],
  "blocks": [
    { "id": "business", "type": "business", "align": "right", "logo": "left" },
    { "type": "spacer", "height": 30 },
    { "id": "title", "type": "title", "align": "center", "filled": true },
    { "id": "meta", "type": "invoiceMeta", "align": "right",
      "fields": ["number", "invoiceDate", "dueDate"] },
    { "id": "client", "type": "client", "caption": "billTo" },
    { "type": "spacer", "height": 30 },
    { "id": "items", "type": "items",
      "columns": ["index", "description", "unit", "qty", "rate", "amount"],
      "borders": true },
    { "type": "spacer", "height": 10 },
    { "id": "totals", "type": "totals", "align": "right",
      "lines": ["subtotal", "discount", "taxes", "total"] },
    { "id": "terms", "type": "terms" },
    { "id": "payment", "type": "payment", "qr": "auto" },
    { "id": "footer", "type": "footer", "left": "pageXofN", "center": "footerText" }
  ]
}

Schicken Sie sie uns

Haben Sie eine Vorlage gestaltet, die Ihnen gefällt? Senden Sie die Datei an support@invoya.app – vielleicht kommt sie in die Galerie.