Criar fatura SwissQR API
O que este endpoint faz
PDF4me Criar fatura SwissQR gera suíço QR Comprovantes de pagamento que estejam em conformidade com a legislação suíça. QR-padrão de fatura (Padrões de Pagamento Suíços, SPS) através de um único REST ligar. Enviar Detalhes do credor e do devedor final, IBAN, valor, moeda, tipo de referência, idioma, estilo do separador e formato de saídaOpcionalmente, inclua um documento de origem como Base64, blob id, ou URL sobrepor o deslizamento a um existente PDF. O API retornos PDF, PNG, JPEG, ou TIFF dependendo de tipo de formato.
Autenticando seu API Solicitar
Todo PDF4me REST API A chamada deve incluir o seu API chave no Authorization Crie ou selecione uma chave no painel do desenvolvedor e mantenha-a em segredo.
Ponto final
/api/v2/CriarFaturaSuíçaQrhttps://api.pdf4me.com/api/v2/CreateSwissQrBillFatos importantes que você não deve perder
eles iam deve começar com CH seguido por 19 dígitos. Um valor inválido. IBAN Retorna um erro.crAddressType e udAddressType para S Assim, rua, número da casa, código postal e cidade são armazenados separadamente. Este formato é necessário para a maioria das conciliações bancárias automatizadas na Suíça. K (Combinado) somente quando não for possível dividir os componentes do endereço.NÃO para pagamentos sem referência estruturada. QRR para uma referência numérica de 27 dígitos em faturas domésticas suíças. PONTUAÇÃO para ISO 11649 Referências de credores. Inclua. referência no corpo ao usar QRR ou SCOR.REST API ponto final
Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/CreateSwissQrBill
Definir É assíncrono para verdadeiro (PascalCase) para 202 Accepted e pesquisar o Localização URL com GET até você receber 200 e o arquivo em JSON. Usar falso para um síncrono 200 resposta.
Configuração de solicitação do Postman
| Contexto | 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
Sempre necessário: eles iam, crName, crAddressType, crStreetOrAddressLine1, crStreetOrAddressLine2, crCódigoPostal, crCity, quantia, moeda, udName, udAddressType, udStreetOrAddressLine1, udStreetOrAddressLine2, udPostalCode, udCity, tipo de referência, tipo de idioma, linha separadora, tipo de formato, e É assíncrono.
Condicional: conteúdo do documento e nomeDoDocumento ao sobrepor em um PDF; referência quando tipo de referência é QRR ou PONTUAÇÃO; Opções de paginação e Número da página quando tipo de formato é pdf.
Opcional: mensagem não estruturada, informações de faturamento, av1, av2, perfis.
| Parâmetro | Obrigatório | Aplica-se quando | O que faz | Exemplo |
|---|---|---|---|---|
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 |
Opções de tipo de endereço
Aplica-se a crAddressType e udAddressType.
S (Estruturado)Recomendado para reconciliação automatizadaK (Combinado)Duas linhas de endereço de formato livreOpções de linha separadora (seperatorLine)
Linha com tesouraLinha pontilhadaLinha sólidaOpções de tipo de referência
NÃONenhuma referência estruturadamensagem não estruturada para uma nota de formato livre em vez de referência.QRRReferência QR de 27 dígitosreferência como uma sequência numérica de 27 dígitos.PONTUAÇÃOReferência do credor ISO 11649referência em ISO 11649 formato (começa com RF).Formato de saída (formatType) e PDF chamada
Quando tipo de formato é pdf, definir Opções de paginação para controlar onde o QR O comprovante é colocado. Para saída de imagem, omita. Opções de paginação ou defina-o como nulo.
formatType: pdfpagingOptions: firstformatType: pdfpagingOptions: lastformatType: pdfpagingOptions: AddPageAtEndformatType: pdfpagingOptions: custom + pageNumberformatType: png | jpeg | tiffpagingOptions: nullCampos de saída
| Campo | Tipo | O que contém |
|---|---|---|
docName | String | Output file name. |
docContent | Base64 | Generated file (PDF or image per formatType). Decode before saving or streaming. |
Solicitar exemplos
Exemplo A: Independente QR conta (sem entrada) PDF)
Omitir conteúdo do documento ou envie uma string vazia para gerar apenas o QR Comprovante de 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
}
Exemplo B: Sobreposição QR em um existente PDF (Base64)
Substituir conteúdo do documento com o seu PDF como Base64 (não dados: prefixo).
{
"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
}
Exemplo C: Copiar e colar 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 úteis de tipo de referência
Sem referência (NON):
{ "referenceType": "NON" }
Referência QR (QRR):
{
"referenceType": "QRR",
"reference": "21000000000313947143000017"
}
Referência do credor (SCOR, ISO 11649):
{
"referenceType": "SCOR",
"reference": "RF18539007547034"
}
trechos de formatType e pagingOptions
{ "formatType": "png", "pagingOptions": null }
{ "formatType": "pdf", "pagingOptions": "last" }
{ "formatType": "pdf", "pagingOptions": "AddPageAtEnd" }
{ "formatType": "pdf", "pagingOptions": "custom", "pageNumber": 1 }
Exemplos de código
Exemplos de integração
Padrões comuns de integração RESTTypical ways developers call Create SwissQR Bill.
- Seu sistema ERP exporta dados de faturas e um PDF.
- Codifique o PDF em Base64.
conteúdo do documento. - campos de pagamento POST com
tipo de referênciaQRR e um código de 27 dígitosreferência. - Decodificar
conteúdo do documentoA partir da resposta, armazene ou envie por e-mail a fatura em PDF com código QR.
- Para obter apenas um comprovante destacável, envie pelo correio com o envelope vazio.
conteúdo do documentoetipo de formatopdf ou png. - Para faturas provenientes de um webhook, codifique o PDF em Base64.
conteúdo do documento, definirOpções de paginaçãoparaduraroupersonalizadoe campos de pagamento POST. - Decodifique a resposta
conteúdo do documentoe fazer o upload para o armazenamento de objetos ou anexá-lo a uma API de e-mail.