Crear factura SwissQR API
Lo que hace este punto final
PDF4me Crear factura SwissQR genera suizo QR Comprobantes de pago que cumplen con la normativa suiza QR-estándar de factura (Estándares de pago suizos, SPS) a través de un único REST Llamar. Enviar Datos del acreedor y del deudor final, IBAN, importe, moneda, tipo de referencia, idioma, estilo de separador y formato de salida. Opcionalmente, incluya un documento fuente como Base64, ID de blob o URL superponer el deslizamiento sobre uno existente PDF. El API devoluciones PDF, PNG, JPEG, o TIFF Dependiendo de tipo de formato.
Autenticando su API Pedido
Cada PDF4me REST API La llamada debe incluir su API clave en el Authorization Encabezado. Crea o selecciona una clave desde el panel de control del desarrollador y mantenla en secreto.
Punto final
/api/v2/CreateSwissQrBillhttps://api.pdf4me.com/api/v2/CreateSwissQrBillDatos importantes que no debes perderte
iban debe comenzar con CH seguido de 19 dígitos. Un valor no válido IBAN devuelve un error.crAddressType y udAddressType a S Por lo tanto, la calle, el número de casa, el código postal y la ciudad se almacenan por separado. Este formato es necesario para la mayoría de las conciliaciones bancarias automatizadas en Suiza. K (Combinado) solo cuando no se pueden separar los componentes de la dirección.NO para pagos sin una referencia estructurada. QRR para una referencia numérica de 27 dígitos en billetes suizos nacionales. PUNTUACIÓN para ISO 11649 Referencias de acreedores. Incluir referencia en el cuerpo cuando se utiliza QRR o SCOR.REST API punto final
Método: CORREO
URL: https://api.pdf4me.com/api/v2/CreateSwissQrBill
Colocar Es asíncrono a verdadero (PascalCase) para 202 Accepted y encuestar el Ubicación URL con GET hasta que reciba 200 y el archivo en JSON. Usar FALSO para un síncrono 200 respuesta.
Configuración de solicitudes de Postman
| Configuración | Valor |
|---|---|
| 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). |
Parámetros
Siempre requerido: iban, crName, crAddressType, crCalleODirecciónLínea1, crCalleODirecciónLínea2, código postal, crCity, cantidad, divisa, udName, udAddressType, udCalleODirecciónLínea1, udCalleODirecciónLínea2, Código postal, udCity, tipo de referencia, tipo de idioma, Línea separadora, tipo de formato, y Es asíncrono.
Condicional: docContent y Nombre del documento al superponerlo sobre un PDF; referencia cuando tipo de referencia es QRR o PUNTUACIÓN; opciones de paginación y Número de página cuando tipo de formato es PDF.
Opcional: Mensaje no estructurado, información de facturación, av1, av2, perfiles.
| Parámetro | Requerido | Se aplica cuando | Lo que hace | Ejemplo |
|---|---|---|---|---|
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 |
Opciones de tipo de dirección
Se aplica a crAddressType y udAddressType.
S (Estructurado)Recomendado para la conciliación automatizadaK (combinado)Dos líneas de dirección de formato libreOpciones de línea separadora (seperatorLine)
Línea con tijerasLínea punteadaLínea sólidaOpciones de tipo de referencia
NOSin referencia estructuradaMensaje no estructurado para una nota de formato libre en lugar de referencia.QRRReferencia QR de 27 dígitosreferencia como una cadena numérica de 27 dígitos.PUNTUACIÓNReferencia del acreedor ISO 11649referencia en ISO 11649 formato (comienza con RF).Formato de salida (formatType) y PDF paginación
Cuando tipo de formato es PDF, colocar opciones de paginación para controlar dónde el QR Se coloca el deslizamiento. Para la salida de la imagen, omitir opciones de paginación o configurarlo en nulo.
formatType: pdfpagingOptions: firstformatType: pdfpagingOptions: lastformatType: pdfpagingOptions: AddPageAtEndformatType: pdfpagingOptions: custom + pageNumberformatType: png | jpeg | tiffpagingOptions: nullCampos de salida
| Campo | Tipo | Lo que contiene |
|---|---|---|
docName | String | Output file name. |
docContent | Base64 | Generated file (PDF or image per formatType). Decode before saving or streaming. |
Ejemplos de solicitud
Ejemplo A: Independiente QR factura (sin entrada) PDF)
Omitir docContent o envíe una cadena vacía para generar solo la QR Comprobante de pago.
{
"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
}
Ejemplo B: Superposición QR en un existente PDF (Base64)
Reemplazar docContent con tu PDF como Base64 (No datos: prefijo).
{
"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
}
Ejemplo C: Copiar y pegar válido 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
}
Cargas útiles de tipo de referencia
Sin referencia (NON):
{ "referenceType": "NON" }
Código QR de referencia (QRR):
{
"referenceType": "QRR",
"reference": "21000000000313947143000017"
}
Referencia del acreedor (SCOR, ISO 11649):
{
"referenceType": "SCOR",
"reference": "RF18539007547034"
}
Fragmentos de formato y opciones de paginación
{ "formatType": "png", "pagingOptions": null }
{ "formatType": "pdf", "pagingOptions": "last" }
{ "formatType": "pdf", "pagingOptions": "AddPageAtEnd" }
{ "formatType": "pdf", "pagingOptions": "custom", "pageNumber": 1 }
Ejemplos de código
Ejemplos de integración
Patrones comunes de integración RESTTypical ways developers call Create SwissQR Bill.
- Su sistema ERP exporta los datos de las facturas y un archivo PDF.
- Codifique el PDF en Base64
docContent. - Campos de pago POST con
tipo de referenciaQRR y un número de 27 dígitosreferencia. - Decodificar
docContenta partir de la respuesta y almacenar o enviar por correo electrónico el PDF de la factura con código QR.
- Solo para un formulario desprendible, ENVÍE con espacio vacío.
docContentytipo de formatopdf o png. - Para facturas de un webhook, codifique el PDF en Base64.
docContent, colocaropciones de paginaciónaúltimoocostumbrey campos de pago POST. - Decodifica la respuesta
docContenty cargarlo al almacenamiento de objetos o adjuntarlo a una API de correo electrónico.