vCard-String für QR-Code erstellen
Wandeln Sie Name, Telefonnummer, E-Mail-Adresse und Organisation in eine vCard-3.0-Nutzlast für QR-Code-Abläufe um.
Im Browser ausführen – kostenlos
Das Ergebnis ist eine deterministische Zeichenfolge mit den erforderlichen vCard-Markierungen, sicherer Maskierung und kompatiblen Zeilenenden. Fügen Sie diese in einen QR-Encoder ein oder übergeben Sie sie an den nächsten Automatisierungsschritt. Der Name ist erforderlich, alle anderen Kontaktdaten sind optional. Daher eignet sich derselbe Vorgang sowohl für eine minimale persönliche Karte als auch für einen vollständigeren Geschäftskontakt.
Erstellen Sie zuerst die Kontaktnutzlast
Ein Kontakt-QR-Code enthält normalerweise strukturierten Text und kein bildspezifisches Kontaktformat. Diese Funktion erzeugt genau diese Ebene: eine vCard-3.0-Nutzlast, die mit BEGIN:VCARD beginnt, VERSION:3.0 angibt, den erforderlichen formatierten Namen enthält und mit END:VCARD endet. Geben Sie einen nicht leeren Namen und wahlweise Telefonnummer, E-Mail-Adresse und Organisation an. Leere optionale Werte werden ausgelassen. Anschließend kann die Nutzlast als Texteingabe für jeden geeigneten QR-Encoder dienen. Wenn Inhalt und Bilderzeugung getrennt bleiben, können Sie Kontaktdaten prüfen, speichern, testen oder wiederverwenden, bevor Sie Größe, Fehlerkorrektur, Farben oder Ausgabeformat festlegen. Auch Fehler lassen sich leichter eingrenzen: Erkennt ein Scanner die vCard, kann das gedruckte Symbol aber nicht zuverlässig lesen, liegt das Problem an der QR-Darstellung. Derselbe Input erzeugt stets exakt dieselbe Zeichenfolge.
Beachten Sie Maskierung, Zeilenenden und optionale Felder
vCard-Werte sind keine beliebigen Textzeilen. Rückwärtsschrägstriche, Kommas, Semikolons und Zeilenumbrüche besitzen strukturelle Bedeutung. Eine direkte Verkettung kann den Kontakt verändern oder in Adressbüchern unterschiedlich ausgelegt werden. Der Generator maskiert diese Zeichen und verwendet die für vCard vorgesehenen CRLF-Zeilenenden. Ein Umbruch in Name oder Organisation wird zu einem maskierten Umbruch innerhalb der Eigenschaft statt zu einer unbeabsichtigten neuen Eigenschaft. Der Name wird als FN geschrieben. Telefonnummer, E-Mail und Organisation erscheinen als TEL, EMAIL und ORG, sofern nach dem Entfernen äußerer Leerzeichen Text vorhanden ist. Bedeutungsvolle Zeichen im Inneren bleiben erhalten. Nach END:VCARD folgt ebenfalls CRLF, sodass auch Systeme mit konventionell abgeschlossenem Textdatensatz die Ausgabe verarbeiten können. Dadurch bleibt die Nutzlast kompakt, vorhersehbar und den gelieferten Daten treu.
Setzen Sie die Nutzlast zuverlässig in QR-Abläufen ein
Übergeben Sie das zurückgegebene Feld payload unverändert als Textinhalt an Ihren QR-Generator. Serialisieren Sie es nicht erneut als JSON und ersetzen Sie Zeilenenden nicht durch sichtbare Schrägstriche; das Symbol muss den tatsächlichen vCard-Text codieren. Testen Sie den fertigen Code vor Druck oder breiter Verteilung mit mehreren Kameras oder Kontaktanwendungen. Scannerverhalten, Druckgröße, Kontrast und QR-Fehlerkorrektur gehören nicht zu dieser Funktion, beeinflussen aber die Nutzung. Bewahren Sie in Automatisierungen die strukturierten Quelldaten neben der Nutzlast auf. So können Sie die Karte bei einer Änderung neu erzeugen, statt codierten Text zu bearbeiten. Falls Ihre Geschäftsregeln es verlangen, validieren Sie E-Mail und Telefonnummer vorher; hier werden sie als Kontaktzeichenfolgen sicher serialisiert. Jede erfolgreiche API-Anfrage kostet $0.002. Ein leerer oder nur aus Leerzeichen bestehender Name führt zu einem Eingabefehler.
Anwendungsfälle
Digitale Visitenkarte erstellen
Wandeln Sie berufliche Identität und direkte Kontaktdaten in die Textebene eines Visitenkarten-QR-Codes um.
Kontakte über Namensschilder teilen
Erzeugen Sie einheitliche vCard-Nutzlasten aus Teilnehmerdaten, bevor einzelne QR-Codes gedruckt werden.
Verzeichnisinhalte automatisieren
Erstellen Sie QR-fertige Nutzlasten neu, sobald sich Telefon, E-Mail oder Organisation einer Person ändern.
Häufige Fragen
Welche vCard-Version verwendet die Nutzlast?
Sie deklariert VERSION:3.0 und enthält einen kompakten Datensatz mit FN sowie den angegebenen Eigenschaften TEL, EMAIL und ORG.
Kann ich Telefon, E-Mail oder Organisation auslassen?
Ja. Alle drei Felder sind optional; fehlende oder leere Werte erzeugen keine leere Eigenschaft.
Warum ist der Name erforderlich?
Der Name füllt die formatierte Namenseigenschaft zur Identifikation des Kontakts. Ein leerer Wert verursacht einen Eingabefehler.
Erzeugt dieser Vorgang das QR-Bild?
Nein. Er liefert die standardisierte Zeichenfolge, die Sie einem separaten QR-Code-Generator übergeben.
Werden Kommas und Umbrüche sicher behandelt?
Ja. Rückwärtsschrägstriche, Kommas, Semikolons und Umbrüche werden vor dem Zusammensetzen maskiert.
Was kostet eine API-Anfrage?
Jede erfolgreiche Anfrage kostet $0.002. Dieselbe deterministische Umwandlung kann auch im Browser ausgeführt werden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/qr-vcard-payload \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Ada Lovelace"}'const res = await fetch("https://api.kit.forhosting.com/enc/qr-vcard-payload", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "Ada Lovelace"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/qr-vcard-payload",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"name": "Ada Lovelace"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/qr-vcard-payload", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"name":"Ada Lovelace"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"name":"Ada Lovelace"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/qr-vcard-payload", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"name": "Ada Lovelace"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.qr_vcard_payload",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |