Skip to main content
Glama
pdf4me
by pdf4me

create_swiss_qr_bill

Generate a Swiss QR bill payment slip and add it to an existing PDF. Provide the PDF path, IBAN, and creditor name to create a standardized Swiss payment QR code.

Instructions

Create the Swiss QR bill payment part on a PDF using the PDF4me CreateSwissQrBill API (POST /api/v2/CreateSwissQrBill). Required inputs per OpenAPI: docContent, document.Name, iban, crName, crAddressType. Enums match backend: address S|K; currency CHF|EUR; language German|French|Italian|English; referenceType QRR|SCOR|NON; seperatorLine LineWithScissor|Line|None (string None). All other schema fields are optional (amount, creditor/debtor address lines, reference, etc.). Reads the source PDF from pdf_file_path (docContent base64); optional document_name overrides document.Name (defaults to the file basename). Output PDF name is output_file_name if set, otherwise 'swiss_qr_bill.pdf'. Saves next to the PDF unless output_dir is set; optional isAsync / 202 polling.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ibanYes
amountNo
cr_cityNo
cr_nameYes
ud_cityNo
ud_nameNo
currencyNoCHF
referenceNo
output_dirNo
billing_infoNo
document_nameNo
language_typeNoEnglish
pdf_file_pathYes
av1_parametersNo
av2_parametersNo
cr_postal_codeNo
reference_typeNoQRR
seperator_lineNoLineWithScissor
ud_postal_codeNo
cr_address_typeNoS
ud_address_typeNo
output_file_nameNo
unstructured_messageNo
cr_street_or_address_line1No
cr_street_or_address_line2No
ud_street_or_address_line1No
ud_street_or_address_line2No
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to lean on, the description discloses key behavioral details: pdf_file_path is used to read the source PDF and convert it to base64, document_name overrides the default file basename, output defaults to 'swiss_qr_bill.pdf' saved next to the source unless output_dir is set, and isAsync/202 polling is available. It doesn't cover error handling or return values, but it provides substantial transparency for a create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, leading with the purpose in the first sentence and then covering required inputs, enums, defaults, and output behavior in a compact format. The mention of 'required inputs per OpenAPI' adds some complexity, but every sentence provides useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 27-parameter tool with no annotations or output schema, the description covers a lot: input mapping, enums, output naming, and async option. However, there are gaps: the meaning of isAsync/202 polling is unclear, the 'required inputs per OpenAPI' list conflicts with the schema's required fields, and no return value or error behavior is described. It's functional but leaves room for confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 27 parameters with 0% description coverage, so the description must compensate. It maps backend-required inputs (docContent, document.Name) to actual schema fields (pdf_file_path, document_name), lists enums for address, currency, language, referenceType, and separatorLine, and clarifies that all other fields are optional. However, it does not explain obscure fields like av1_parameters, av2_parameters, billing_info, or unstructured_message, so it only partially bridges the parameter gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Create the Swiss QR bill payment part on a PDF using the PDF4me CreateSwissQrBill API.' It also names the specific endpoint and distinguishes itself from sibling tools like read_swiss_qr_bill and split_pdf_by_swiss_qr, making its role unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for creating Swiss QR bill content on a PDF, which directly implies when to use it. It doesn't explicitly list alternative tools or exclusions, but the purpose statement is explicit enough to guide selection, and details like the API endpoint and optional async behavior add operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pdf4me/pdf4me-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server