Validez le format d’un code postal selon le pays
Les codes postaux sont courts, mais leur forme varie fortement selon les pays. Cette capacité reçoit un code postal ou ZIP avec un code pays à deux lettres, puis contrôle sa structure nationale standard.
Lancer gratuitement
Elle fournit une réponse déterministe sans réseau, géocodage ni base d’adresses. Utilisez-la pour repérer lettres déplacées, chiffres manquants et séparateurs incorrects avant l’enregistrement dans le paiement, l’expédition, la facturation ou le fichier client. Un pays non reconnu déclenche une erreur de saisie explicite plutôt qu’un résultat incertain.
Contrôlez le format dans le bon contexte national
Un code postal ne peut pas être évalué correctement sans connaître son pays. Cinq chiffres conviennent aux États-Unis, à la France, à l’Allemagne et à l’Espagne, mais sont insuffisants en Inde, en Chine ou à Singapour. Le Canada alterne lettres et chiffres, la Pologne impose un tiret et le Royaume-Uni utilise plusieurs constructions alphanumériques. Cette capacité isole ces règles et choisit un seul modèle grâce au code pays à deux lettres. Elle retire les espaces extérieurs sans importance et accepte le pays indépendamment de la casse, sans réécrire silencieusement le code postal. La réponse indique le pays normalisé, la valeur nettoyée aux extrémités, la forme attendue et un booléen. Votre application peut donc décider avec le booléen tandis que le formulaire affiche la forme requise en cas d’échec. Si le pays ne figure pas dans la table prise en charge, la requête échoue clairement au lieu de déclarer invalide toute valeur inconnue. Cette distinction empêche qu’une couverture incomplète donne des conseils trompeurs sur la qualité de vos données.
Sachez ce qu’un contrôle de forme peut prouver
L’algorithme contrôle la structure, non l’existence ni la distribution possible. Un résultat positif signifie que les caractères, la longueur et les séparateurs respectent le modèle représenté pour le pays. Il ne confirme ni l’attribution du code par l’administration postale, ni l’appartenance d’une rue à cette zone, ni la desserte par un transporteur. Ces affirmations exigent des données externes à jour et souvent une adresse complète. La limite doit rester explicite : la validation déterministe est rapide, privée et reproductible, alors que la vérification de distribution est un autre service. Les zéros initiaux sont conservés, car un code postal est un identifiant et non un nombre. Envoyez toujours une chaîne afin de préserver les codes français, italiens ou américains concernés. La casse des lettres est ignorée lorsque le système national en emploie, et les espaces facultatifs ne sont acceptés que là où cette variation est normale. La ponctuation n’est jamais supprimée globalement : un séparateur obligatoire dans un pays peut être faux ailleurs. Le libellé de format décrit la forme attendue sans prétendre que chaque combinaison possible existe.
Validez dès l’entrée des données erronées
Le meilleur moment pour effectuer ce contrôle se situe juste après le choix du pays et la saisie du code postal. Un paiement peut appeler la capacité avant de créer la commande, une inscription peut signaler une faute probable avant d’enregistrer le profil et un import peut tester chaque ligne avant de l’intégrer au fichier client. Dans un formulaire, laissez visible la saisie d’origine et utilisez la forme renvoyée comme conseil, sans remplacer le texte de manière inattendue. Pour un lot, conservez le booléen et le pays avec chaque ligne afin de distinguer les valeurs mal formées des pays non couverts. La fonction est déterministe et n’utilise ni réseau, ni hasard, ni horloge, ni état mutable : la même entrée produit toujours la même réponse. L’automatisation par API coûte $0.002 par requête terminée et chaque code constitue un élément mesurable. Considérez un résultat négatif comme une demande de correction, jamais comme une preuve de fraude ou d’adresse inexistante. Une erreur de pays inconnu signale un choix de configuration ou de couverture à traiter explicitement.
Cas d’usage
Retour immédiat au paiement
Contrôlez le code après le choix du pays et affichez la forme nationale avant de produire l’étiquette d’expédition.
Qualité des imports CRM
Signalez les codes mal formés tout en séparant les pays non couverts des simples valeurs invalides.
Formulaires internationaux
Appliquez les bonnes règles de lettres, chiffres, longueur et séparateurs sans gérer une expression régulière dans chaque application.
Questions fréquentes
Un résultat valide prouve-t-il que l’adresse existe ?
Non. Il prouve uniquement que le code respecte la structure du pays, sans confirmer son attribution ni sa distribution.
Que se passe-t-il pour un pays non reconnu ?
La requête renvoie une erreur de saisie invalide. Une absence de couverture ne devient jamais un résultat négatif trompeur.
Faut-il envoyer les codes postaux comme des nombres ?
Non. Envoyez une chaîne pour conserver les zéros initiaux, lettres, espaces et signes obligatoires.
Les lettres minuscules sont-elles acceptées ?
Oui, pour les systèmes alphabétiques. Le pays ignore aussi la casse et revient normalisé en majuscules.
Quel est le prix de la validation ?
Chaque requête API terminée avec succès coûte $0.002. Les saisies incorrectes produisent des erreurs.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/data/postal-code-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"postal_code":"94105","country_code":"US"}'const res = await fetch("https://api.kit.forhosting.com/data/postal-code-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"postal_code": "94105",
"country_code": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/postal-code-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"postal_code": "94105",
"country_code": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/postal-code-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"postal_code":"94105","country_code":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"postal_code":"94105","country_code":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/postal-code-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"postal_code": "94105",
"country_code": "US"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.postal_code_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |