SwissQR-Rechnung erstellen API
Was dieser Endpunkt bewirkt
PDF4me SwissQR-Rechnung erstellen generiert Schweizer QR Zahlungsbelege, die den Schweizer Standards entsprechen QR-Rechnungsstandard (Schweizer Zahlungsnormen, SPS) durch einen einzigen REST Anrufen. Senden. Angaben zum Gläubiger und zum letztendlichen Schuldner, IBANBetrag, Währung, Referenztyp, Sprache, Trennzeichenstil und AusgabeformatOptional kann ein Quelldokument hinzugefügt werden als Base64, Blob-ID oder URL um die Gleitfläche auf eine bestehende PDF. Der API Rückgaben PDF, PNG, JPEG, oder TIFF abhängig von formatTypeDie
Authentifizierung Ihres API Anfrage
Jeder PDF4me REST API Der Anruf muss Ihre API Schlüssel im Authorization Kopfzeile. Erstellen oder wählen Sie einen Schlüssel im Entwickler-Dashboard aus und halten Sie ihn geheim.
Endpunkt
/api/v2/CreateSwissQrBillWichtige Fakten, die Sie nicht verpassen sollten
Sie gingen muss beginnen mit CH gefolgt von 19 Ziffern. Ungültig IBAN Gibt einen Fehler zurück.crAddressType Und udAddressType Zu S Straße, Hausnummer, Postleitzahl und Ort werden daher separat gespeichert. Dieses Layout ist für die meisten automatisierten Bankabstimmungen in der Schweiz erforderlich. K (Kombiniert) nur dann, wenn Sie die Adresskomponenten nicht aufteilen können.NICHT für Zahlungen ohne strukturierten Referenzcode. QRR für eine 27-stellige numerische Referenz auf Schweizer Inlandsrechnungen. PUNKTZAHL für ISO 11649 Gläubigerreferenzen. Einschließen Referenz im Körper bei Verwendung QRR oder SCORDieREST API Endpunkt
Verfahren: POST
URL: https://api.pdf4me.com/api/v2/CreateSwissQrBill
Satz IstAsynchron Zu WAHR (PascalCase) für 202 Accepted und befragen Sie die Standort URL mit GET bis Sie erhalten 200 und die Datei in JSON. Verwenden FALSCH für eine synchrone 200 Antwort.
Postman-Anfrage einrichten
| Einstellung | Wert |
|---|---|
| Method | POST |
| URL | https://api.pdf4me.com/api/v2/CreateSwissQrBill |
| Headers | Content-Type: application/json |
| Authorization | Basic Auth with your API key, or header Authorization: Basic YOUR_API_KEY |
| Async | If the response is 202, poll the URL in the Location header (GET) until you get 200 and the file bytes (or JSON with document fields, depending on API version). |
Parameter
Immer erforderlich: Sie gingen, crName, crAddressType, crStreetOrAddressLine1, crStreetOrAddressLine2, Postleitzahl, crCity, Menge, Währung, udName, udAddressType, udStreetOrAddressLine1, udStreetOrAddressLine2, Postleitzahl, udCity, Referenztyp, Sprachtyp, Trennlinie, formatType, Und IstAsynchronDie
Bedingt: docContent Und docName beim Überlagern einer PDF-Datei; Referenz Wann Referenztyp Ist QRR oder PUNKTZAHL; Paging-Optionen Und Seitenzahl Wann formatType Ist PDFDie
Optional: unstrukturierte Nachricht, Abrechnungsinformationen, av1, av2, ProfileDie
| Parameter | Erforderlich | Gilt, wenn | Was es tut | Beispiel |
|---|---|---|---|---|
docContent | Conditional | Overlay on existing PDF | Omit or empty string = standalone QR slip only. Otherwise Base64 PDF/image bytes (no data: prefix), blob id from POST /api/v2/UploadBlob, or HTTPS URL to the source file. | "" |
docName | Conditional | With docContent | File name for input/output context. Omit or empty when no source document. | invoice.pdf |
iban | Yes | Every request | Creditor Swiss IBAN. | CH0200700110003765824 |
crName | Yes | Every request | Creditor name or company as registered with the bank. | Test AG |
crAddressType | Yes | Every request | S = structured (street + building) or K = combined address lines. | S |
crStreetOrAddressLine1 | Yes | Every request | If S: street name (max ~70 chars). If K: first address line. | Test Strasse |
crStreetOrAddressLine2 | Yes | Every request | If S: house number (max ~16). If K: second address line. | 1 |
crPostalCode | Yes | Every request | Creditor postal code (max ~16). | 8000 |
crCity | Yes | Every request | Creditor city (max ~35). | Zurich |
amount | Yes | Every request | Payment amount without leading zeros (string). Example: "1000" = 1000.00. | 1000 |
currency | Yes | Every request | CHF or EUR. | CHF |
udName | Yes | Every request | Ultimate debtor name or company (required by API; may be empty strings if unused). | Test Debt AG |
udAddressType | Yes | Every request | S or K; same rules as crAddressType. | S |
udStreetOrAddressLine1 | Yes | Every request | Debtor street or address line 1. | Test Deb Strasse |
udStreetOrAddressLine2 | Yes | Every request | Debtor street number or address line 2. | 2 |
udPostalCode | Yes | Every request | Debtor postal code. | 8000 |
udCity | Yes | Every request | Debtor city. | Zurich |
referenceType | Yes | Every request | NON = no reference, QRR = QR reference, SCOR = creditor reference. | NON |
reference | Conditional | referenceType = QRR or SCOR | Required for QRR or SCOR; max 27 characters. Omit for NON. | 21000000000313947143000017 |
languageType | Yes | Every request | English, German, French, or Italian. | English |
seperatorLine | Yes | Every request | API spelling is seperatorLine (one a). LineWithScissor, DottedLine, or SolidLine. | LineWithScissor |
formatType | Yes | Every request | Output format: pdf, png, jpeg, tiff, or null (default PDF behavior). | pdf |
pagingOptions | Conditional | formatType = pdf | first, last, AddPageAtEnd, or custom. Omit or null for non-PDF formats. | first |
pageNumber | Conditional | pagingOptions = custom | Integer >= 1; single page index when pagingOptions is custom. | 1 |
unstructuredMessage | No | Optional | Free-form payment note. Max 140 characters. | Thank you for your business |
billingInfo | No | Optional | Customer billing information. | Invoice for services rendered |
av1 | No | Optional | Alternative scheme parameter 1. | |
av2 | No | Optional | Alternative scheme parameter 2. | |
profiles | No | Optional | Custom API profile JSON string. See API documentation for profile options. | { "someOption": true } |
IsAsync | Yes | Every request | PascalCase IsAsync. true = HTTP 202 and poll Location. false = synchronous HTTP 200. | true |
Optionen für Adresstypen
Gilt für crAddressType Und udAddressTypeDie
S (Strukturiert)Empfohlen für den automatisierten AbgleichK (Kombiniert)Zwei frei gestaltbare AdresszeilenOptionen für Trennlinien (seperatorLine)
LinieMitSchereGepunktete LinieDurchgezogene LinieOptionen für Referenztypen
NICHTKeine strukturierte Referenzunstrukturierte Nachricht für eine freie Notiz anstelle von ReferenzDieQRR27-stellige QR-ReferenzReferenz als 27-stellige Zahlenfolge.PUNKTZAHLISO 11649 GläubigerreferenzReferenz In ISO 11649 Format (beginnt mit RF).Ausgabeformat (formatType) Und PDF Paging
Wann formatType Ist PDF, Satz Paging-Optionen um zu kontrollieren, wo die QR Der Zettel wird platziert. Für die Bildausgabe weglassen. Paging-Optionen oder stellen Sie es ein auf nullDie
formatType: pdfpagingOptions: firstformatType: pdfpagingOptions: lastformatType: pdfpagingOptions: AddPageAtEndformatType: pdfpagingOptions: custom + pageNumberformatType: png | jpeg | tiffpagingOptions: nullAusgabefelder
| Feld | Typ | Was es enthält |
|---|---|---|
docName | String | Output file name. |
docContent | Base64 | Generated file (PDF or image per formatType). Decode before saving or streaming. |
Beispiele anfordern
Beispiel A: Standalone QR Rechnung (keine Eingabe) PDF)
Auslassen docContent oder senden Sie eine leere Zeichenkette, um nur die zu generieren QR Zahlungsbeleg.
{
"docContent": "",
"docName": "",
"iban": "CH0200700110003765824",
"crName": "Test AG",
"crAddressType": "S",
"crStreetOrAddressLine1": "Test Strasse",
"crStreetOrAddressLine2": "1",
"crPostalCode": "8000",
"crCity": "Zurich",
"amount": "1000",
"currency": "CHF",
"udName": "Test Debt AG",
"udAddressType": "S",
"udStreetOrAddressLine1": "Test Deb Strasse",
"udStreetOrAddressLine2": "2",
"udPostalCode": "8000",
"udCity": "Zurich",
"referenceType": "NON",
"languageType": "English",
"seperatorLine": "LineWithScissor",
"formatType": "pdf",
"pagingOptions": "first",
"IsAsync": true
}
Beispiel B: Überlagerung QR auf einem bestehenden PDF (Base64)
Ersetzen docContent mit Ihrem PDF als Base64 (NEIN Daten: Präfix).
{
"docContent": "JVBERi0xLjQKJeLjz9MKMy...",
"docName": "invoice.pdf",
"iban": "CH0200700110003765824",
"crName": "Test AG",
"crAddressType": "S",
"crStreetOrAddressLine1": "Test Strasse",
"crStreetOrAddressLine2": "1",
"crPostalCode": "8000",
"crCity": "Zurich",
"amount": "1000",
"currency": "CHF",
"udName": "Test Debt AG",
"udAddressType": "S",
"udStreetOrAddressLine1": "Test Deb Strasse",
"udStreetOrAddressLine2": "2",
"udPostalCode": "8000",
"udCity": "Zurich",
"referenceType": "NON",
"languageType": "English",
"seperatorLine": "LineWithScissor",
"formatType": "pdf",
"pagingOptions": "custom",
"pageNumber": 1,
"IsAsync": true
}
Beispiel C: Gültiges Kopieren und Einfügen JSON
{
"docContent": "",
"docName": "",
"iban": "CH0200700110003765824",
"crName": "Test AG",
"crAddressType": "S",
"crStreetOrAddressLine1": "Test Strasse",
"crStreetOrAddressLine2": "1",
"crPostalCode": "8000",
"crCity": "Zurich",
"amount": "1000",
"currency": "CHF",
"udName": "Test Debt AG",
"udAddressType": "S",
"udStreetOrAddressLine1": "Test Deb Strasse",
"udStreetOrAddressLine2": "2",
"udPostalCode": "8000",
"udCity": "Zurich",
"referenceType": "NON",
"languageType": "English",
"seperatorLine": "LineWithScissor",
"formatType": "pdf",
"pagingOptions": "first",
"IsAsync": true
}
Referenztyp-Nutzdaten
Keine Referenz (NON):
{ "referenceType": "NON" }
QR-Referenz (QRR):
{
"referenceType": "QRR",
"reference": "21000000000313947143000017"
}
Gläubigerreferenz (SCOR, ISO 11649):
{
"referenceType": "SCOR",
"reference": "RF18539007547034"
}
formatType- und pagingOptions-Snippets
{ "formatType": "png", "pagingOptions": null }
{ "formatType": "pdf", "pagingOptions": "last" }
{ "formatType": "pdf", "pagingOptions": "AddPageAtEnd" }
{ "formatType": "pdf", "pagingOptions": "custom", "pageNumber": 1 }
Codebeispiele
Integrationsbeispiele
Gängige REST-IntegrationsmusterTypical ways developers call Create SwissQR Bill.
- Ihr ERP-System exportiert Rechnungsdaten und eine PDF-Datei.
- Base64-kodieren Sie das PDF in
docContentDie - POST-Zahlungsfelder mit
ReferenztypQRR und eine 27-stelligeReferenzDie - Entschlüsseln
docContentAus der Antwort wird die QR-Rechnung als PDF gespeichert oder per E-Mail versendet.
- Nur für einen Abreißabschnitt, POST mit leerem
docContentUndformatTypepdf oder png. - Bei Rechnungen aus einem Webhook muss das PDF Base64-kodiert werden in
docContent, SatzPaging-OptionenZuzuletztoderBrauchund POST-Zahlungsfelder. - Entschlüsseln Sie die Antwort
docContentund in einen Objektspeicher hochladen oder an eine E-Mail-API anhängen.