# EPC QR Code Generator (SEPA Girocode)

> EPC QR Code Generator (SEPA Girocode) is a paid API for AI agents from 402utils.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Generates an EPC/Girocode QR code (SEPA Credit Transfer, EPC069-12) as PNG, SVG, or raw text, for pre-filling bank transfers via a banking app scan.

## Facts

- Endpoint: POST https://402utils.com/v1/epc-qr
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/epc-qr-code-generator-sepa-girocode-9b74dd74
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ziMouqFocS4Q5Q1wNne8J

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability epc-qr-code-generator-sepa-girocode-9b74dd74 -d '<json body>'
```

Example prompt: Generate a SEPA Girocode QR in PNG format for my invoice to Acme GmbH — their IBAN is DE89370400440532013000, BIC COBADEFFXXX, amount €1,250.00, and add the remittance text 'Invoice INV-2024-042'.

## When to prefer this

Use this endpoint when you need to embed a scannable SEPA payment QR code in an invoice, PDF, or payment page for European bank transfers. Prefer this over generic QR code generators because it enforces strict EPC069-12 compliance including field ordering, byte limits, IBAN validation, and RF reference validation. Not a payment initiation — purely encodes data for the banking app to consume.

## Known failure modes

- Invalid IBAN (mod-97 check fails) → 400 error with validation message
- Invalid RF creditor reference → 400 error
- Both remittance and reference supplied simultaneously → 400 error (mutually exclusive)
- Amount outside 0.01–999999999.99 range → 400 error
- Beneficiary name exceeds 70 characters → 400 error
- BIC missing when version 001 requested → 400 error
- Payload exceeds 331 bytes (too many fields too long) → 400 error
- Currency other than EUR → 400 error

## How this service works

Generate an EPC QR code (SEPA Credit Transfer / « Girocode », EPC069-12) — the QR a banking app scans to pre-fill a transfer, the payment companion to an invoice. Body { name, iban, amount?, bic?, purpose?, remittance? | reference? (RF) }. Returns PNG (default), SVG, or the raw EPC text. IBAN + RF are validated; strict EPC encoding (order, lengths, ≤331 bytes, level M). EUR only. Not a payment initiation — just the encoded data.

## Output

Returns a PNG image (default), SVG, or plain text containing the raw EPC payload, representing a standards-compliant SEPA Credit Transfer QR code that banking apps can scan to pre-fill a transfer. IBAN and RF reference are validated; payload is guaranteed ≤331 bytes and properly encoded per EPC069-12.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "bg": {
   "type": "string",
   "description": "Background hex colour (default #ffffff)."
  },
  "fg": {
   "type": "string",
   "description": "Foreground hex colour (default #000000)."
  },
  "bic": {
   "type": "string",
   "description": "Beneficiary BIC. Required for version 001, optional for 002."
  },
  "iban": {
   "type": "string",
   "description": "Beneficiary IBAN (validated mod-97)."
  },
  "name": {
   "type": "string",
   "description": "Beneficiary name (≤ 70 chars)."
  },
  "size": {
   "type": "integer",
   "description": "Output size in px for png/svg (default 512)."
  },
  "amount": {
   "type": "number",
   "description": "Amount in EUR (0.01–999999999.99). Optional (open amount)."
  },
  "format": {
   "enum": [
    "png",
    "svg",
    "text"
   ],
   "type": "string",
   "default": "png",
   "description": "png (default), svg, or text (the raw EPC payload)."
  },
  "purpose": {
   "type": "string",
   "description": "SEPA purpose code (≤ 4 chars)."
  },
  "version": {
   "enum": [
    "001",
    "002"
   ],
   "type": "string",
   "default": "002",
   "description": "EPC version. 001 requires a BIC."
  },
  "currency": {
   "type": "string",
   "default": "EUR",
   "description": "EUR only (EPC constraint)."
  },
  "reference": {
   "type": "string",
   "description": "Structured remittance = ISO 11649 RF creditor reference (≤ 35)."
  },
  "remittance": {
   "type": "string",
   "description": "Unstructured remittance (≤ 140). Mutually exclusive with reference."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/epc-qr-code-generator-sepa-girocode-9b74dd74/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
