Obtener producto por ID
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.simplo.cl/api/v1/billing/productos/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"), Headers = { { "X-Api-Key", "<X-Api-Key>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.simplo.cl/api/v1/billing/productos/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0")) .header("X-Api-Key", "<X-Api-Key>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'https://api.simplo.cl/api/v1/billing/productos/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {'X-Api-Key': '<X-Api-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.simplo.cl/api/v1/billing/productos/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'X-Api-Key: <X-Api-Key>'Retorna un producto del catálogo por su UUID.
Autenticación
Sección titulada «Autenticación»Parámetros
Sección titulada «Parámetros»Parámetros de ruta
Sección titulada «Parámetros de ruta»UUID del producto
Respuestas
Sección titulada «Respuestas»Producto encontrado
object
Example
{ "codigo": "PROD-001", "nombre": "Hora de consultoria TI", "precio_unitario": 50000, "unidad": "HR"}Token o API key inválido o ausente
object
Código de error máquina-legible
Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.
Alias de compatibilidad de message mantenido hacia atrás.
object
Campo con error (dot notation para nested)
Código de validación
Mensaje descriptivo
Acción recomendada para el cliente
Severidad opcional del error
Contexto estructurado opcional para debugging
object
Example
{ "code": "VALIDATION_ERROR", "message": "Error de validacion en los campos enviados", "details": [ { "field": "receptor.rut", "code": "INVALID_RUT", "message": "RUT invalido: digito verificador no coincide" } ], "severity": "critical"}Recurso no encontrado
object
Código de error máquina-legible
Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.
Alias de compatibilidad de message mantenido hacia atrás.
object
Campo con error (dot notation para nested)
Código de validación
Mensaje descriptivo
Acción recomendada para el cliente
Severidad opcional del error
Contexto estructurado opcional para debugging
object
Example
{ "code": "VALIDATION_ERROR", "message": "Error de validacion en los campos enviados", "details": [ { "field": "receptor.rut", "code": "INVALID_RUT", "message": "RUT invalido: digito verificador no coincide" } ], "severity": "critical"}