SDK Samples — Validación de Identidad
Ejemplos listos para ejecutar en múltiples lenguajes. Cada archivo es auto-contenido — no requiere SDK propietario.
Colección Postman
Descargar colección Postman para importar directamente en Postman o Insomnia.
Consulta de documento (lookup)
- Python
- JavaScript
- C#
- PHP
- Go
import requests
BASE_URL = "https://api.erply.pro"
API_KEY = "YOUR_API_KEY"
response = requests.get(
f"{BASE_URL}/v1/dgii/document/130862346",
headers={"x-api-key": API_KEY},
timeout=10,
)
if response.status_code == 200:
data = response.json()
print(f"{data['rnc']} — {data['name']} ({data['status']})")
elif response.status_code == 404:
print("No encontrado")
else:
response.raise_for_status()
const BASE_URL = "https://api.erply.pro";
const API_KEY = "YOUR_API_KEY";
const response = await fetch(
`${BASE_URL}/v1/dgii/document/130862346`,
{ headers: { "x-api-key": API_KEY } }
);
if (response.ok) {
const data = await response.json();
console.log(`${data.rnc} — ${data.name} (${data.status})`);
} else if (response.status === 404) {
console.log("No encontrado");
} else {
throw new Error(`HTTP ${response.status}`);
}
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync(
"https://api.erply.pro/v1/dgii/document/130862346"
);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine($"{json.GetProperty("rnc")} — {json.GetProperty("name")}");
}
$ch = curl_init('https://api.erply.pro/v1/dgii/document/130862346');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: YOUR_API_KEY'],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code === 200) {
$data = json_decode($body, true);
echo "{$data['rnc']} — {$data['name']}\n";
}
req, _ := http.NewRequest("GET",
"https://api.erply.pro/v1/dgii/document/130862346", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var entry struct {
RNC string `json:"rnc"`
Name string `json:"name"`
Status string `json:"status"`
}
json.NewDecoder(resp.Body).Decode(&entry)
fmt.Printf("%s — %s (%s)\n", entry.RNC, entry.Name, entry.Status)
Búsqueda por nombre (search)
- Python
- JavaScript
- C#
- PHP
- Go
import requests
response = requests.get(
"https://api.erply.pro/v1/dgii/document:search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"q": "ERPLY", "field": "name", "limit": 5},
timeout=10,
)
data = response.json()
for item in data["items"]:
print(f" {item['rnc']} — {item['name']}")
const params = new URLSearchParams({ q: "ERPLY", field: "name", limit: "5" });
const response = await fetch(
`https://api.erply.pro/v1/dgii/document:search?${params}`,
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const data = await response.json();
for (const item of data.items) {
console.log(` ${item.rnc} — ${item.name}`);
}
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var url = "https://api.erply.pro/v1/dgii/document:search?q=ERPLY&field=name&limit=5";
var json = await client.GetFromJsonAsync<JsonElement>(url);
foreach (var item in json.GetProperty("items").EnumerateArray())
{
Console.WriteLine($" {item.GetProperty("rnc")} — {item.GetProperty("name")}");
}
$params = http_build_query(['q' => 'ERPLY', 'field' => 'name', 'limit' => '5']);
$ch = curl_init("https://api.erply.pro/v1/dgii/document:search?{$params}");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: YOUR_API_KEY'],
]);
$body = curl_exec($ch);
curl_close($ch);
$data = json_decode($body, true);
foreach ($data['items'] as $item) {
echo " {$item['rnc']} — {$item['name']}\n";
}
params := url.Values{}
params.Set("q", "ERPLY")
params.Set("field", "name")
params.Set("limit", "5")
req, _ := http.NewRequest("GET",
"https://api.erply.pro/v1/dgii/document:search?"+params.Encode(), nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result struct {
Items []struct{ RNC, Name string } `json:"items"`
}
json.NewDecoder(resp.Body).Decode(&result)
for _, item := range result.Items {
fmt.Printf(" %s — %s\n", item.RNC, item.Name)
}
Estado del registro (status)
- Python
- JavaScript
import requests
response = requests.get(
"https://api.erply.pro/v1/dgii/registry/status",
headers={"x-api-key": "YOUR_API_KEY"},
timeout=10,
)
status = response.json()
print(f"Última ingest: {status['last_ingest']}")
print(f"Registros: {status['record_count']:,}")
print(f"Obsoleto: {'Sí' if status['stale'] else 'No'}")
const response = await fetch(
"https://api.erply.pro/v1/dgii/registry/status",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const status = await response.json();
console.log(`Última ingest: ${status.last_ingest}`);
console.log(`Registros: ${status.record_count.toLocaleString()}`);
console.log(`Obsoleto: ${status.stale ? "Sí" : "No"}`);
Purga Habeas Data (purge)
Requiere Bearer token
Este endpoint requiere autenticación de nivel tenant (Authorization: Bearer <token>), no solo API key.
- Python
- JavaScript
import requests
response = requests.post(
"https://api.erply.pro/v1/dgii/document/130862346:purge",
headers={
"x-api-key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_BEARER_TOKEN",
"Content-Type": "application/json",
},
timeout=10,
)
if response.status_code == 202:
print("Solicitud de purga aceptada")
elif response.status_code == 403:
print("No autorizado")
const response = await fetch(
"https://api.erply.pro/v1/dgii/document/130862346:purge",
{
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_BEARER_TOKEN",
"Content-Type": "application/json",
},
}
);
if (response.status === 202) {
console.log("Solicitud de purga aceptada");
}
Archivos disponibles
| Lenguaje | Archivos |
|---|---|
| Python | lookup.py, search.py, status.py, purge.py |
| JavaScript | lookup.mjs, search.mjs, status.mjs, purge.mjs |
| C# | Lookup.cs, Search.cs |
| PHP | lookup.php, search.php |
| Go | lookup.go, search.go |
Todos los archivos están en docs/samples/identity/.