Crea fattura SwissQR API
Cosa fa questo endpoint
PDF4me Crea fattura SwissQR genera svizzero QR ricevute di pagamento conformi alla normativa svizzera QR-standard di fatturazione (standard di pagamento svizzeri, SPS) attraverso un singolo REST chiama. Invia dettagli del creditore e del debitore finale, IBAN, importo, valuta, tipo di riferimento, lingua, stile del separatore e formato di output. Facoltativamente, includi un documento sorgente come Base64, ID blob, o URL sovrapporre lo slip a uno esistente PDF. IL API resi PDF, PNG, JPEG, O TIFF a seconda di tipo di formattazione.
Autenticazione del tuo API Richiesta
Ogni PDF4me REST API la chiamata deve includere il tuo API chiave nel Authorization Intestazione. Crea o seleziona una chiave dalla dashboard dello sviluppatore e mantienila segreta.
Punto finale
/api/v2/CreateSwissQrBillhttps://api.pdf4me.com/api/v2/CreateSwissQrBillInformazioni importanti da non perdere
stavano andando deve iniziare con CH seguito da 19 cifre. Un numero non valido IBAN restituisce un errore.crAddressType E udAddressType A S quindi via, numero civico, codice postale e città vengono memorizzati separatamente. Questo formato è richiesto per la maggior parte delle riconciliazioni bancarie automatizzate svizzere. Utilizzare K (Combinato) solo quando non è possibile separare i componenti dell'indirizzo.NON per pagamenti senza un riferimento strutturato. QRR per un riferimento numerico di 27 cifre sulle banconote svizzere nazionali. SCOR per ISO 11649 Referenze dei creditori. Includere riferimento nel corpo quando si utilizza QRR O SCOR.REST API endpoint
Metodo: INVIARE
URL: https://api.pdf4me.com/api/v2/CreateSwissQrBill
Impostato IsAsync A VERO PascalCase) per 202 Accepted e sondare il Posizione URL con GET fino a quando non riceverai 200 e il file in JSON. Utilizzo falso per un sincrono 200 risposta.
configurazione della richiesta Postman
| Collocamento | Valore |
|---|---|
| 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). |
Parametri
Sempre richiesto: stavano andando, crName, crAddressType, crStreetOrAddressLine1, crStreetOrAddressLine2, crPostalCode, crCity, quantità, valuta, udName, udAddressType, udStreetOrAddressLine1, udStreetOrAddressLine2, udPostalCode, udCity, tipo di riferimento, Lingua tipo, linea di separazione, tipo di formattazione, E IsAsync.
Condizionale: docContent E docName quando si sovrappone a un PDF; riferimento Quando tipo di riferimento È QRR O SCOR; Opzioni di paginazione E numero di pagina Quando tipo di formattazione È pdf.
Opzionale: messaggio non strutturato, informazioni di fatturazione, av1, av2, profili.
| Parametro | Necessario | Si applica quando | Cosa fa | Esempio |
|---|---|---|---|---|
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 |
Opzioni del tipo di indirizzo
Si applica a crAddressType E udAddressType.
S (strutturato)Consigliato per la riconciliazione automatizzataK (Combinato)Due righe di indirizzo a forma liberaOpzioni della linea di separazione (seperatorLine)
LineaConForbiciLinea tratteggiataLinea solidaOpzioni del tipo di riferimento
NONNessun riferimento strutturatomessaggio non strutturato per una nota a forma libera invece di riferimento.QRRCodice QR di 27 cifreriferimento come una stringa numerica di 27 cifre.SCORRiferimento del creditore ISO 11649riferimento In ISO 11649 formato (inizia con RF).Formato di output (formatType) E PDF cercapersone
Quando tipo di formattazione È pdf, impostato Opzioni di paginazione per controllare dove QR è posizionato il foglio. Per l'output dell'immagine, omettere Opzioni di paginazione o impostalo su nulla.
formatType: pdfpagingOptions: firstformatType: pdfpagingOptions: lastformatType: pdfpagingOptions: AddPageAtEndformatType: pdfpagingOptions: custom + pageNumberformatType: png | jpeg | tiffpagingOptions: nullCampi di output
| Campo | Tipo | Cosa contiene |
|---|---|---|
docName | String | Output file name. |
docContent | Base64 | Generated file (PDF or image per formatType). Decode before saving or streaming. |
Esempi di richieste
Esempio A: Autonomo QR fattura (nessun input) PDF)
Omettere docContent o inviare una stringa vuota per generare solo il QR ricevuta di pagamento.
{
"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
}
Esempio B: Sovrapposizione QR su un esistente PDF Base64)
Sostituire docContent con il tuo PDF COME Base64 (NO dati: prefisso).
{
"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
}
Esempio C: Copia-incolla valido 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
}
Payload di tipo di riferimento
Nessun riferimento (NON):
{ "referenceType": "NON" }
Codice QR (QRR):
{
"referenceType": "QRR",
"reference": "21000000000313947143000017"
}
Riferimento del creditore (SCOR, ISO 11649):
{
"referenceType": "SCOR",
"reference": "RF18539007547034"
}
Frammenti di codice per formatType e pagingOptions
{ "formatType": "png", "pagingOptions": null }
{ "formatType": "pdf", "pagingOptions": "last" }
{ "formatType": "pdf", "pagingOptions": "AddPageAtEnd" }
{ "formatType": "pdf", "pagingOptions": "custom", "pageNumber": 1 }
Esempi di codice
Esempi di integrazione
Modelli comuni di integrazione RESTTypical ways developers call Create SwissQR Bill.
- Il tuo sistema ERP esporta i dati delle fatture e un file PDF.
- Codificare il PDF in Base64
docContent. - campi di pagamento POST con
tipo di riferimentoQRR e un codice di 27 cifreriferimento. - decodificare
docContentdalla risposta e salva o invia tramite e-mail il PDF della fattura QR.
- Solo per una ricevuta a strappo, POSTARE con vuoto
docContentEtipo di formattazionepdf o png. - Per le fatture provenienti da un webhook, codificare il PDF in Base64
docContent, impostatoOpzioni di paginazioneAscorsoOcostumee campi di pagamento POST. - Decodifica la risposta
docContente caricare i dati nell'archivio oggetti o allegarli a un'API di posta elettronica.