Crei una stringa vCard per QR
Trasformi nome, telefono, e-mail e organizzazione in un payload vCard 3.0 predisposto per i codici QR.
Esegui gratis nel browser
Il risultato è una stringa deterministica con i delimitatori vCard richiesti, escape sicuro e terminatori di riga interoperabili. Può incollarla in un codificatore QR o passarla alla fase successiva di un processo automatico. Il nome è obbligatorio, mentre gli altri dati sono facoltativi: la stessa operazione è quindi adatta sia a una scheda personale minima sia a un contatto aziendale più completo.
Prepari il contatto prima di generare il codice QR
Un codice QR di contatto contiene normalmente testo strutturato, non un formato di contatto legato all’immagine. Questa capacità crea tale livello: un payload vCard 3.0 che inizia con BEGIN:VCARD, dichiara VERSION:3.0, include il nome formattato obbligatorio e termina con END:VCARD. Inserisca un nome non vuoto e, se necessario, telefono, e-mail e organizzazione. I valori facoltativi vuoti vengono omessi. Potrà quindi usare il payload come testo per qualsiasi codificatore QR compatibile. Separare la costruzione del contenuto dalla generazione dell’immagine consente di controllare, archiviare, provare o riutilizzare i dati prima di scegliere dimensioni, correzione degli errori, colori o formato. Anche la diagnosi è più semplice: se il lettore riconosce la vCard ma il simbolo stampato non funziona, il problema riguarda la resa QR. Input uguali producono sempre la stessa stringa.
Conosca escape, terminatori di riga e proprietà opzionali
I valori vCard non sono righe di testo arbitrarie. Barre inverse, virgole, punti e virgola e interruzioni di riga hanno significato strutturale; una concatenazione diretta può modificare il contatto o produrre interpretazioni diverse. Il generatore applica l’escape a questi caratteri e usa i terminatori CRLF previsti dal formato. Un’interruzione interna al nome o all’organizzazione diventa una nuova riga con escape nella proprietà, non una proprietà involontaria. Il nome viene scritto come FN. Telefono, e-mail e organizzazione diventano TEL, EMAIL e ORG soltanto se contengono testo dopo la rimozione degli spazi esterni. I caratteri significativi interni restano invariati. L’output aggiunge inoltre CRLF dopo END:VCARD, risultando adatto ai sistemi che richiedono un record di testo terminato convenzionalmente. Queste scelte mantengono il payload compatto, prevedibile e fedele ai dati forniti.
Utilizzi il payload in modo affidabile nelle automazioni
Prenda il campo payload restituito e lo fornisca invariato come contenuto testuale al generatore QR. Non lo serializzi una seconda volta in JSON e non sostituisca i terminatori di riga con barre visibili: il simbolo deve codificare il vero testo vCard. Prima della stampa o di una distribuzione ampia, provi il codice con più fotocamere o applicazioni di contatti. Lettura, dimensioni di stampa, contrasto e correzione degli errori QR non rientrano in questa capacità, pur influenzando il risultato. Nelle automazioni conservi i campi sorgente insieme al payload, così potrà rigenerare la scheda quando un contatto cambia. Se il prodotto impone regole rigorose, convalidi prima e-mail e telefono; qui sono trattati come stringhe e serializzati in sicurezza. Ogni richiesta API riuscita costa $0.002. Un nome vuoto o composto solo da spazi genera un errore di input.
Casi d'uso
Crei un biglietto da visita digitale
Trasformi identità professionale e recapiti nella componente testuale di un codice QR per biglietti da visita.
Condivida contatti sui badge
Generi payload vCard coerenti dai record dei partecipanti prima di stampare codici QR individuali.
Automatizzi le risorse della directory
Rigeneri payload pronti per QR quando cambiano telefono, e-mail o organizzazione di una persona.
Domande frequenti
Quale versione vCard utilizza il payload?
Dichiara VERSION:3.0 e crea un record compatto con FN e le proprietà TEL, EMAIL e ORG che Lei fornisce.
Posso omettere telefono, e-mail o organizzazione?
Sì. I tre campi sono facoltativi e un valore assente o vuoto non produce una proprietà vuota.
Perché il nome è obbligatorio?
Il nome alimenta la proprietà formattata che identifica il contatto. Un valore vuoto restituisce un errore di input non valido.
Questa operazione genera l’immagine QR?
No. Restituisce la stringa standard che Lei dovrà fornire a un generatore di codici QR separato.
Virgole e interruzioni di riga sono gestite in sicurezza?
Sì. Barre inverse, virgole, punti e virgola e nuove righe ricevono l’escape prima dell’assemblaggio.
Quanto costa una richiesta API?
Ogni richiesta completata costa $0.002. La stessa trasformazione deterministica può essere eseguita anche nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"name": "Ada Lovelace"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.qr_vcard_payload",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |