{"name":"firma.de Quittungs-API","version":1,"description":"Erstellt eine Quittung nach § 368 BGB mit den üblichen Angaben, aus derselben Vorlage wie der Quittungs-Generator von firma.de: privat, als umsatzsteuerpflichtiges Unternehmen (bis 250 € brutto mit den Angaben einer Kleinbetragsrechnung nach § 33 UStDV), als Kleinunternehmer (§ 19 UStG, über 250 € mit den Angaben nach § 34a UStDV) oder als Bestätigung einer Zahlung auf eine Rechnung. Die Antwort enthält den Quittungstext (offene Angaben als [Platzhalter]), den Betrag in Worten, bei Unternehmen Steuer- und Nettobetrag, die Hinweise des Generators zu Rechnungspflicht, Kasse, Bargeld-Obergrenze und Umsatzsteuer und einen Link, der die Quittung im Generator öffnet: Dort lässt sie sich unterschreiben und als PDF mit Original und Durchschrift oder als Word-Datei herunterladen. Kostenlos, ohne Schlüssel.","privacy":"Die API rechnet auf dem Server und speichert nichts: keine Eingaben, keine Quittungen. Antworten mit Namen, Anschriften, Steuernummer oder Freitext landen auch in keinem gemeinsamen Cache. Für solche Angaben nimm trotzdem POST: Die Parameter einer GET-Adresse können wie jede Adresse in Zugriffsprotokollen von Hosting, Proxys, Browsern und Agenten landen.","openapi":"https://www.firma.de/api/quittung/openapi.json","builder":"https://www.firma.de/quittung/","builderLink":"builderUrl öffnet die Quittung im Generator: https://www.firma.de/quittung/#q=<base64url(JSON)>. Das JSON enthält die Felder, die von der leeren Quittung abweichen, verschachtelt wie draft, und v: 1. Der Teil nach # erreicht unseren Server nicht; der Generator liest ihn im Browser, nimmt ihn aus der Adresszeile und speichert den Entwurf nur in diesem Browser. Ohne date im Aufruf trägt der Link kein Datum, der Generator setzt dann den Tag, an dem er geöffnet wird; ein leeres date bleibt leer (Datum von Hand). Denselben Link nimmt der Parameter draft entgegen.","whenNoReceipt":"Manchmal ist eine Quittung das falsche Dokument. Dann kommt die Antwort mit HTTP 200, blocked: true, receipt: null und blockedReason; Hinweise, fehlende Angaben und der Generator-Link kommen trotzdem. Das betrifft: ein umsatzsteuerpflichtiges Unternehmen über 250 € an einen Geschäftskunden, einen Verein oder eine Behörde (payerIsBusiness=true) oder für Arbeiten an Haus oder Grundstück (topic=homeService), denn dann ist eine Rechnung nach § 14 UStG Pflicht (die Zahlung darauf bestätigt case=invoicePayment); Reverse Charge (§ 13b UStG); Spendenquittungen (topic=donation, nur nach amtlichem Muster); einen Kleinunternehmer über 100.000 €; den Kaufpreis einer Immobilie in bar (§ 16a GwG); ab dem 10.07.2027 Barzahlungen über 10.000 € an Unternehmen (Art. 80 AMLR); eine Steuerangabe im Text, wo keine stehen darf oder die dem Steuersatz widerspricht (§ 14c UStG), und einen Verzicht auf weitere Ansprüche (§ 397 BGB).","units":"Beträge in Euro brutto mit Cent, Daten als YYYY-MM-DD; TT.MM.JJJJ und heute gehen auch. Beträge dürfen deutsch geschrieben sein: 450, 1.190,00, 12,50, 1,5k. Ein Betrag braucht mindestens einen Cent. Auswahlwerte gehen auch auf Deutsch: privat, Unternehmen, Kleinunternehmer, Rechnung, bar, Überweisung, Karte, Scheck, steuerfrei, Differenzbesteuerung, Miete, Kaution …","statuses":"200 auch für unvollständige (complete: false) und gesperrte (blocked: true) Quittungen: Der Generator ist gelaufen. 400 mit problems je Feld bei ungültigen Werten, unbekannten Parametern oder Angaben, die zum gewählten Fall nicht passen (etwa ein Steuersatz bei case=private); Tracking-Parameter wie utm_source zählen nicht. 413 über 20000 Bytes, 429 bei mehr als 120 Aufrufen pro Minute.","get":{"examples":{"privateSale":{"description":"Privatverkauf eines gebrauchten Fahrrads gegen bar.","url":"https://www.firma.de/api/quittung/?case=privat&amount=450&method=bar&topic=Verkauf&purpose=gebrauchtes+Trekkingrad,+Rahmennummer+WAY123456&payer=Jonas+Weber&recipient=Anna+Schmidt&place=Berlin"},"business":{"description":"Fahrradwerkstatt quittiert 119 € bar für eine Reparatur mit 19 % Umsatzsteuer: Kleinbetragsrechnung bis 250 €, als Markdown.","url":"https://www.firma.de/api/quittung/?case=unternehmen&amount=119&vatRate=19&purpose=Fahrradreparatur%3A+Inspektion+und+neue+Bremsbel%C3%A4ge&recipient=Radwerk+Lumio+GmbH&recipientAddress=Torstra%C3%9Fe+12,+10119+Berlin&format=md"},"smallBusiness":{"description":"Kleinunternehmerin quittiert 80 € per Überweisung, mit dem Hinweis nach § 19 UStG.","url":"https://www.firma.de/api/quittung/?case=kleinunternehmer&amount=80&method=ueberweisung&purpose=Portr%C3%A4tshooting,+1+Stunde&payer=Lena+Kaiser&recipient=Mara+Vogt+Fotografie&recipientAddress=Lindenweg+4,+04109+Leipzig"},"invoicePayment":{"description":"Zahlung auf eine Rechnung per Überweisung: Zahlungsbestätigung ohne Steuerangaben.","url":"https://www.firma.de/api/quittung/?case=rechnung&amount=1.190,00&method=transfer&invoiceNumber=RE-2026-031&invoiceDate=15.10.2026&payer=Nordlicht+Studio+UG+(haftungsbeschr%C3%A4nkt)&recipient=Kessler+Webdesign&recipientAddress=Hafenstra%C3%9Fe+3,+20359+Hamburg"},"needsInvoice":{"description":"Unternehmen an Geschäftskunden über 250 €: gesperrt, hier braucht es eine Rechnung.","url":"https://www.firma.de/api/quittung/?case=business&amount=300&vatRate=19&payerIsBusiness=ja&purpose=Fahrradreparatur+und+neuer+Laufradsatz&recipient=Radwerk+Lumio+GmbH&recipientAddress=Torstra%C3%9Fe+12,+10119+Berlin"}},"parameters":{"case":{"description":"Wer quittiert. private: eine Privatperson, nie mit Umsatzsteuer. business: ein umsatzsteuerpflichtiges Unternehmen (regelbesteuert); bis 250 € brutto ist die Quittung eine Kleinbetragsrechnung. smallBusiness: ein Kleinunternehmer nach § 19 UStG, ohne Umsatzsteuer, mit Befreiungshinweis. invoicePayment: bestätigt die Zahlung auf eine bestehende Rechnung, ohne Steuerangaben (die stehen in der Rechnung).","example":"private","field":"case","type":"enum","values":["private","business","smallBusiness","invoicePayment"]},"topic":{"description":"Optional, worum es geht; bringt die passenden Hinweise: general (Standard), sale (Verkauf), vehicle (Auto), rent (Miete), deposit (Kaution), loanRepayment (Darlehensrückzahlung), homeService (Arbeiten an Haus, Wohnung oder Grundstück: Handwerker, Garten, Reinigung), realEstate (Kaufpreis einer Immobilie oder Anteile daran), donation (Spende: dafür gibt es keine Quittung, nur die amtliche Zuwendungsbestätigung). Kaution, Darlehen und Spende sind kein Entgelt: keine Umsatzsteuer.","example":"sale","field":"topic","type":"enum","values":["general","sale","vehicle","rent","deposit","loanRepayment","homeService","realEstate","donation"]},"amount":{"description":"Betrag in Euro brutto, mit Cent; mindestens 0,01.","example":"450","field":"amount","type":"number","min":0.01,"max":10000000},"vatRate":{"description":"Nur case=business, nicht bei Kaution, Darlehen oder Spende: 19, 7, 0 (Nullsteuersatz für Photovoltaik, § 12 Abs. 3 UStG), exempt (steuerfrei, mit exemption) oder margin (Differenzbesteuerung nach § 25a UStG, ohne Steuerausweis). Der Betrag enthält die Steuer.","example":"19","field":"vat.rate","type":"enum","values":["19","7","0","exempt","margin"],"aliases":["vat"]},"exemption":{"description":"Bei vatRate=exempt: der Grund, etwa „Heilbehandlung (§ 4 Nr. 14 UStG)“.","example":"Heilbehandlung (§ 4 Nr. 14 UStG)","field":"vat.exemption","type":"text","maxLength":200,"aliases":["vatExemption"]},"purpose":{"description":"Wofür das Geld ist: Menge und Art der Ware oder Leistung oder der Grund der Zahlung. Keine Steuerangaben und kein Verzicht auf weitere Ansprüche hineinschreiben. Bei invoicePayment optional.","example":"gebrauchtes Trekkingrad","field":"purpose","type":"text","maxLength":300},"method":{"description":"Zahlungsart: cash (bar, Standard), transfer (Überweisung), card (Karte), cheque (Scheck) oder other.","example":"cash","field":"method","type":"enum","values":["cash","transfer","card","cheque","other"],"aliases":["paymentMethod"]},"partial":{"description":"Teilzahlung: Die Quittung sagt, dass ein Restbetrag offen bleibt.","example":"false","field":"partial","type":"boolean","aliases":["partialPayment"]},"invoiceNumber":{"description":"Bei invoicePayment: Nummer der bezahlten Rechnung.","example":"RE-2026-031","field":"invoice.number","type":"text","maxLength":40,"aliases":["invoice"]},"invoiceDate":{"description":"Bei invoicePayment, optional: Datum der Rechnung.","example":"2026-10-15","field":"invoice.date","type":"date"},"payer":{"description":"Wer gezahlt hat: voller Name der Person oder Firma. Bei business und bei smallBusiness bis 250 € optional.","example":"Jonas Weber","field":"payer.name","type":"text","maxLength":120,"aliases":["payerName"]},"payerAddress":{"description":"Anschrift des Zahlers in einer Zeile; nötig bei smallBusiness über 250 € (§ 34a UStDV).","example":"Karl-Liebknecht-Straße 9, 04107 Leipzig","field":"payer.address","type":"text","maxLength":200},"payerIsBusiness":{"description":"Bei business und smallBusiness: Der Kunde ist ein Unternehmen, das für sein Unternehmen kauft, ein Verein oder eine Behörde. Bei business über 250 € braucht es dann eine Rechnung (blocked).","example":"false","field":"payerIsBusiness","type":"boolean","aliases":["b2b"]},"recipient":{"description":"Wer das Geld erhalten hat und die Quittung unterschreibt: voller Name der Person oder Firma mit Rechtsform.","example":"Anna Schmidt","field":"recipient.name","type":"text","maxLength":120,"aliases":["recipientName"]},"recipientAddress":{"description":"Anschrift des Zahlungsempfängers in einer Zeile; nötig bei business, smallBusiness und invoicePayment.","example":"Torstraße 12, 10119 Berlin","field":"recipient.address","type":"text","maxLength":200},"taxNumber":{"description":"Nicht bei private: Steuernummer oder USt-IdNr. des Zahlungsempfängers; nötig bei smallBusiness über 250 € (§ 34a UStDV).","example":"231/123/45678","field":"recipient.taxNumber","type":"text","maxLength":40,"aliases":["recipientTaxNumber","vatId"]},"number":{"description":"Optional: Quittungs- oder Belegnummer, etwa 2026-014.","example":"2026-014","field":"number","type":"text","maxLength":40,"aliases":["receiptNumber"]},"place":{"description":"Optional: Ort der Ausstellung.","example":"Berlin","field":"place","type":"text","maxLength":80},"date":{"description":"Ausstellungsdatum; ohne Angabe heute (Europe/Berlin).","example":"2026-10-27","field":"date","type":"date","aliases":["issueDate"]},"paidOn":{"description":"Optional: Tag, an dem das Geld kam, wenn er vom Ausstellungsdatum abweicht (etwa eine Überweisung, die vorher einging).","example":"2026-10-24","field":"paidOn","type":"date","aliases":["paymentDate"]},"draft":{"description":"Ein Link des Generators oder nur der Teil nach #q= als Ausgangspunkt; weitere Parameter ändern ihn. In einer GET-Adresse das # als %23 schreiben, sonst kommt der Entwurf nicht an. Bei POST auch ein Entwurf als Objekt, etwa draft aus einer früheren Antwort.","example":"https://www.firma.de/quittung/#q=…","type":"text"},"format":{"description":"json (Standard) oder md: Quittung und Hinweise als Markdown.","example":"md","type":"enum","values":["json","md"]}}},"post":{"contentType":"application/json","description":"POST mit JSON in der Form des Entwurfs (wie draft in der Antwort): verschachtelt, etwa payer: { name, address } und vat: { rate }, oder mit denselben flachen Namen wie bei GET. Fehlende Felder und null lassen den Standard stehen, \"\" leert ein Text-, Datums- oder Betragsfeld. format und draft gehen auch hier; draft darf ein Generator-Link oder ein Entwurf als Objekt sein, etwa draft aus einer früheren Antwort.","example":{"case":"business","amount":119,"vat":{"rate":19},"purpose":"Fahrradreparatur: Inspektion und neue Bremsbeläge","method":"cash","recipient":{"name":"Radwerk Lumio GmbH","address":"Torstraße 12, 10119 Berlin"},"number":"2026-014","place":"Berlin","date":"2026-10-27","format":"json"}},"answer":{"amountInWords":"Der Betrag in Worten, wie er auf der Quittung steht; null ohne Betrag.","blocked":"true, wenn eine Quittung hier das falsche Dokument ist (Rechnungspflicht, Spende, Bargeldverbot …): Dann ist receipt null.","blockedReason":"Welcher Hinweis sperrt (check), warum und wie es weitergeht (link); sonst null.","builderUrl":"Öffnet die Quittung im Generator von firma.de zum Bearbeiten, Unterschreiben und Herunterladen (PDF mit Original und Durchschrift, Word).","checks":"Hinweise zur Quittung, die ernstesten zuerst. level stop: so keine Quittung zum Herunterladen; entweder braucht es ein anderes Dokument, oder ein Text muss heraus (blockedReason sagt, was); warn: prüfen, die Angaben sehen falsch aus; info: gut zu wissen. law nennt die Norm, lawUrl den Gesetzestext, cta den passenden Berater, link einen Weg im Generator oder zu einem anderen Werkzeug.","complete":"true, wenn keine Angabe mehr fehlt.","disclaimer":"Ein Muster, keine Rechts- oder Steuerberatung im Einzelfall.","draft":"Der Entwurf, wie er in die Quittung eingeht, geprüft und vervollständigt. Als POST-Body oder draft zurückgeschickt, ändert er sich mit weiteren Feldern.","missing":"Was die Quittung noch als Platzhalter zeigt, mit deutscher Bezeichnung.","receipt":"Die Quittung als Text und als Markdown; offene Angaben stehen als [Platzhalter] darin.","stand":"Datum, zu dem Vorlage, Hinweise und Grenzen zuletzt gegen Gesetz und Verwaltungsanweisungen geprüft wurden.","vat":"Nur case=business mit einem Steuersatz: Bruttobetrag, Steuersatz, enthaltene Umsatzsteuer und Nettobetrag, wie die Quittung sie nennt; sonst null."},"stand":"2026-10-27","disclaimer":"Vorlage und Erläuterungen für typische Fälle, keine Rechts- oder Steuerberatung im Einzelfall. Maßgeblich sind das Gesetz und deine eigenen Unterlagen."}