POST
Trimite un singur CNP, conținut CSV/TXT sau un array în câmpul
input. API-ul selectează automat modul single sau bulk. Limita este de 60 cereri/minut pentru fiecare adresă IP.
Validare individuală
Pentru un singur CNP trimite valoarea ca string sau număr. Un CNP invalid returnează tot HTTP 200, dar cu valid: false.
Exemple de integrare
Cerere
POST
curl -X POST 'https://verificarecnp.ro/api/v1/cnp/validate' \
-H 'Content-Type: application/json' \
-d '{"input":"1960527400195"}'
<?php
$payload = array (
'input' => '1960527400195',
);
$ch = curl_init('https://verificarecnp.ro/api/v1/cnp/validate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
const response = await fetch('https://verificarecnp.ro/api/v1/cnp/validate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"input": "1960527400195"
})
});
const result = await response.json();
import json
import urllib.request
payload = json.dumps({
"input": "1960527400195"
}).encode()
request = urllib.request.Request(
'https://verificarecnp.ro/api/v1/cnp/validate', data=payload,
headers={'Content-Type': 'application/json'}, method='POST'
)
result = json.load(urllib.request.urlopen(request))
Răspuns live
Pregătit
Apasă „Rulează testul” pentru rezultat.
Exemplu de răspuns JSON
{
"success": true,
"lang": "ro",
"mode": "single",
"result": {
"valid": true,
"errors": [],
"data": {
"cnp": "1960527400195",
"s": "1",
"person_type": "Masculin, născut 1900-1999",
"gender": "Masculin",
"gender_key": "male",
"birth_date": "1996-05-27",
"week_day": "Luni",
"week_day_key": 1,
"age": 30,
"zodiac": "Gemeni",
"zodiac_key": "gemini",
"county_code": "40",
"county": "București",
"serial": "019",
"control_digit": "5",
"expected_digit": "5"
}
}
}
Validare bulk / CSV
Trimite CSV/TXT ca text sau ca array JSON. Separatorii acceptați sunt linia nouă, virgula, punctul și virgula sau spațiul.
Exemple de integrare
Cerere
POST
curl -X POST 'https://verificarecnp.ro/api/v1/cnp/validate' \
-H 'Content-Type: application/json' \
-d '{"input":"1960527400195\n9999999999999"}'
<?php
$payload = array (
'input' => '1960527400195
9999999999999',
);
$ch = curl_init('https://verificarecnp.ro/api/v1/cnp/validate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
const response = await fetch('https://verificarecnp.ro/api/v1/cnp/validate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"input": "1960527400195\n9999999999999"
})
});
const result = await response.json();
import json
import urllib.request
payload = json.dumps({
"input": "1960527400195\n9999999999999"
}).encode()
request = urllib.request.Request(
'https://verificarecnp.ro/api/v1/cnp/validate', data=payload,
headers={'Content-Type': 'application/json'}, method='POST'
)
result = json.load(urllib.request.urlopen(request))
Răspuns live
Pregătit
Apasă „Rulează testul” pentru rezultat.
Exemplu de răspuns JSON
{
"success": true,
"lang": "ro",
"mode": "bulk",
"summary": {
"total": 2,
"valid": 1,
"invalid": 1
},
"results": [
{
"valid": true,
"errors": [],
"data": {
"cnp": "1960527400195",
"s": "1",
"person_type": "Masculin, născut 1900-1999",
"gender": "Masculin",
"gender_key": "male",
"birth_date": "1996-05-27",
"week_day": "Luni",
"week_day_key": 1,
"age": 30,
"zodiac": "Gemeni",
"zodiac_key": "gemini",
"county_code": "40",
"county": "București",
"serial": "019",
"control_digit": "5",
"expected_digit": "5"
}
},
{
"valid": false,
"errors": [
"Data nașterii este invalidă.",
"Cod județ / regiune invalid.",
"Cifră de control invalidă. Cifra de control așteptată: 6."
],
"data": {
"cnp": "9999999999999",
"s": "9",
"person_type": "Rezident străin",
"gender": "Rezident străin",
"gender_key": "resident",
"birth_date": "",
"week_day": "",
"week_day_key": null,
"age": "",
"zodiac": "",
"zodiac_key": null,
"county_code": "99",
"county": "",
"serial": "999",
"control_digit": "9",
"expected_digit": "6"
}
}
]
}
Răspunsuri de eroare
Fiecare eroare este returnată ca JSON împreună cu statusul HTTP corespunzător.
| Status | Semnificație |
|---|---|
400 Bad Request | Body JSON malformat sau nevalid. |
415 Unsupported Media Type | Content-Type nu este application/json. |
422 Unprocessable Content | Unul sau mai multe câmpuri nu au trecut validarea. |
429 Too Many Requests | Limita a fost depășită (60 cereri/minut). |