Identificatori v1 / Identificatori
Validare în lot
Validează multe valori deodată, fiecare cu tipul ei declarat ori detectat. Răspunsul are verdictul pe fiecare şi un sumar: câte valide, câte nu.
POST
https://oneapi.ro/api/identificatori/v1/valideaza
Corpul cererii
Se trimite ca JSON, în corpul cererii (Content-Type: application/json) — nu în şirul de interogare.
NumeTipDescriereValori acceptate
valoriobligatoriu
listă
Minim 1, maxim 200.
tipopțional
text
Maxim 24.
max 24 car.
Tipuri explicite
Corpul cererii
{
"valori": [
{
"valoare": "BTRLRO22",
"tip": "bic"
},
{
"valoare": "17621339",
"tip": "cui"
}
]
}
Cu detecţie
Corpul cererii
{
"valori": [
{
"valoare": "RO49AAAA1B31007593840000"
}
]
}
Amestecat, cu o valoare necitibilă
Corpul cererii
{
"valori": [
{
"valoare": "RO49AAAA1B31007593840000"
},
{
"valoare": "BTRLRO22"
},
{
"valoare": "abc"
}
]
}
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Corpul are
valori— o listă de cel mult 200 de elemente{valoare, tip?}— și, opțional,tipla nivelul cererii, care se aplică tuturor elementelor fără tip propriu. - Fără
tip, fiecare valoare trece prin detecție. Rezultatul poartă atuncitip_detectatșidetectie_sigura, ca să știi dacă ai o potrivire fără echivoc. Dă tipul explicit când îl cunoști: e mai rapid și mai sigur. - CNP-ul nu se acceptă aici, nici ca tip de element, nici la nivelul cererii. Un lot de coduri numerice personale e exact forma de prelucrare pe care ruta dedicată o evită prin POST fără cache și fără retenție; a o permite pe altă ușă ar anula regula.
- POST, nu GET, și pentru loturi mari, și fiindcă lista de identificatori a cuiva n-are ce căuta într-un URL care ajunge în loguri.
La ce folosește
- Cureți o bază de contacte, marcând identificatorii care nu trec cifra de control.
- Validezi un fișier importat înainte de a-l încărca, într-o singură cerere.
- Verifici un amestec de tipuri fără să știi dinainte care e care.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
inregistrari
integer
Câte valori s-au procesat.
valide
integer
Câte au trecut validarea.
invalide
integer
Câte n-au trecut.
rezultate[]
array
Rezultatul fiecărei valori, în ordinea în care au fost trimise.
rezultate[].tip
string
rezultate[].valoare
string
Valoarea publicată de sursă pentru combinaţia de mai sus.
rezultate[].valid
boolean
rezultate[].normalizat
string
rezultate[].componente.institutie
string
rezultate[].componente.tara
string
Ţara la care se referă valoarea.
rezultate[].componente.tara_nume
string
rezultate[].componente.locatie
string
rezultate[].componente.cod_de_test
boolean
rezultate[].componente.sediu_central
boolean
rezultate[].observatie
string
Precizare despre cum se citeşte valoarea de alături.
observatie
string
Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
rezultate[].tip_detectat
string
Prezent doar când tipul n-a fost dat explicit.
rezultate[].detectie_sigura
boolean
Dacă detecția a găsit exact un singur tip valid.
rezultate[].eroare
Prezent doar când tipul cerut pentru elementul acela nu există.
Exemple de răspuns
corp: {"valori": [{"valoare": "BTRLRO22", "tip": "bic"}, {"valoare": "17621339", "tip": "cui"}]}
POSThttps://oneapi.ro/api/identificatori/v1/valideaza
{
"data": {
"inregistrari": 2,
"valide": 2,
"invalide": 0,
"rezultate": [
{
"tip": "bic",
"valoare": "BTRLRO22",
"valid": true,
"normalizat": "BTRLRO22",
"componente": {
"institutie": "BTRL",
"tara": "RO",
"tara_nume": "România",
"locatie": "22",
"cod_de_test": false,
"sediu_central": true
},
"observatie": "Verificare de FORMĂ. Registrul BIC e produs comercial SWIFT, deci nu putem confirma că instituția există sau cine e — doar că șirul respectă ISO 9362."
}
],
"observatie": "Când nu dai `tip`, se detectează după formă — iar formele se suprapun (13 cifre pot fi și un cod de produs). Dă tipul explicit când îl cunoști."
}
}
corp: {"valori": [{"valoare": "RO49AAAA1B31007593840000"}]}
POSThttps://oneapi.ro/api/identificatori/v1/valideaza
{
"data": {
"inregistrari": 1,
"valide": 1,
"invalide": 0,
"rezultate": [
{
"tip": "iban",
"valoare": "RO49AAAA1B31007593840000",
"valid": true,
"normalizat": "RO49AAAA1B31007593840000",
"componente": {
"tara": "RO",
"tara_nume": "România",
"cifre_control": "49",
"lungime": 24,
"lungime_verificata": true,
"format_afisare": "RO49 AAAA 1B31 0075 9384 0000",
"cod_banca": "AAAA",
"cont": "1B31007593840000"
},
"tip_detectat": "iban",
"detectie_sigura": true
}
],
"observatie": "Când nu dai `tip`, se detectează după formă — iar formele se suprapun (13 cifre pot fi și un cod de produs). Dă tipul explicit când îl cunoști."
}
}
corp: {"valori": [{"valoare": "RO49AAAA1B31007593840000"}, {"valoare": "BTRLRO22"}, {"valoare": "abc"}]}
POSThttps://oneapi.ro/api/identificatori/v1/valideaza
{
"data": {
"inregistrari": 3,
"valide": 2,
"invalide": 1,
"rezultate": [
{
"tip": "iban",
"valoare": "RO49AAAA1B31007593840000",
"valid": true,
"normalizat": "RO49AAAA1B31007593840000",
"componente": {
"tara": "RO",
"tara_nume": "România",
"cifre_control": "49",
"lungime": 24,
"lungime_verificata": true,
"format_afisare": "RO49 AAAA 1B31 0075 9384 0000",
"cod_banca": "AAAA",
"cont": "1B31007593840000"
},
"tip_detectat": "iban",
"detectie_sigura": true
}
],
"observatie": "Când nu dai `tip`, se detectează după formă — iar formele se suprapun (13 cifre pot fi și un cod de produs). Dă tipul explicit când îl cunoști."
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | Lipsește valori, sunt peste 200 de elemente, un tip nu există, sau s-a cerut tipul cnp. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "Lipsește valori, sunt peste 200 de elemente, un tip nu există, sau s-a cerut tipul cnp."
}
}