Empresa
GET /empresa devuelve la empresa del token: sus datos tributarios, establecimientos y puntos de emisión, los créditos disponibles, la vigencia de la firma electrónica y la configuración del token.
Para qué sirve
- Comprobar la conexión: al configurar la integración, confirma que el token es válido, de la empresa correcta y del ambiente esperado.
- Elegir el punto de emisión: los códigos de
establecimientos[].codigoyestablecimientos[].puntosEmision[].codigoson los que van enestablecimientoypuntoEmisional emitir. - Anticipar errores: sin créditos la emisión responde
402 SIN_CREDITOS, y sin firma vigente422 FIRMA_NO_VIGENTE. Consultar estos datos antes de un lote de emisiones evita esos rechazos.
Datos de la empresa
| Campo | Contenido |
|---|---|
ruc, razonSocial, nombreComercial | Datos del emisor que se imprimen en los comprobantes. |
regimen | GENERAL, RIMPE_EMPRENDEDOR o RIMPE_NEGOCIO_POPULAR. Define la leyenda del régimen en los comprobantes. |
obligadoContabilidad | Si la empresa está obligada a llevar contabilidad. |
contribuyenteEspecial, resolucionContribuyenteEspecial | Si es contribuyente especial y el número de resolución que se imprime. |
agenteRetencion, resolucionAgenteRetencion | Si es agente de retención y el número de resolución que se imprime. |
ambiente | El ambiente del token: PRUEBAS o PRODUCCION. |
creditosDisponibles | Comprobantes que la empresa puede emitir con su saldo actual. |
Estos datos se cambian en la aplicación; el API solo los consulta.
Firma electrónica
firma indica si la empresa tiene una firma cargada (configurada), si está vigente (vigente), su fecha de vencimiento (vence) y si vence en 30 días o menos (porVencer). El API nunca devuelve el certificado ni su clave.
Cuando porVencer es true, renueva la firma con tu entidad de certificación y cárgala en la aplicación antes de la fecha de vence: sin firma vigente no se puede emitir.
Token
token describe el token que hizo la solicitud:
nombre,prefijoyambiente: para reconocerlo en Cuenta > API e integraciones.puntoPorDefecto: el punto que se usa cuando la emisión no indicaestablecimientoypuntoEmision;nullsi no tiene.puntosPermitidos: los puntos en los que puede emitir;nullsi puede emitir en todos. Una lista vacía significa que sus puntos ya no existen y el token no puede emitir.
Establecimientos y secuenciales
Cada establecimiento trae su código, descripción, dirección, si es la matriz y sus puntos de emisión. Cada punto trae en siguientesSecuenciales el próximo número de factura, nota de crédito y retención en el ambiente del token: los de pruebas y los de producción son independientes.
Los secuenciales son informativos. Golem asigna el número al emitir y lo devuelve en la respuesta: no calcules el número en tu sistema a partir de este valor, porque otra emisión (desde el API o desde la aplicación) puede usarlo antes.
Consultar la empresa del token
GET /
- Requiere token
Devuelve el RUC y los datos tributarios de la empresa, sus establecimientos y puntos de emisión con los siguientes secuenciales del ambiente del token, los créditos disponibles, la vigencia de la firma electrónica (nunca el certificado ni su clave) y los datos del token que se usó: su punto de emisión por defecto y los puntos en los que puede emitir.
Límites: 60 solicitudes por minuto por token.
Parámetros
| Campo | Descripción |
|---|---|
X-Request-Id cabecera string | Identificador propio de la solicitud (hasta 64 caracteres: letras, números y
|
Ejemplo de solicitud
Los ejemplos leen el token de la variable de entorno GOLEM_TOKEN.
curl https://api.golem.ec/v1/empresa \
--max-time 30 \
-H "Authorization: Bearer $GOLEM_TOKEN" const respuesta = await fetch('https://api.golem.ec/v1/empresa', {
headers: {
Authorization: `Bearer ${process.env.GOLEM_TOKEN}`,
},
signal: AbortSignal.timeout(30000),
});
const datos = await respuesta.json();
console.log(respuesta.status, datos); import os
import requests
respuesta = requests.get(
"https://api.golem.ec/v1/empresa",
headers={
"Authorization": f"Bearer {os.environ['GOLEM_TOKEN']}",
},
timeout=30,
)
print(respuesta.status_code, respuesta.json()) <?php
// composer require guzzlehttp/guzzle
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$cliente = new Client(['base_uri' => 'https://api.golem.ec/v1/', 'timeout' => 30]);
$respuesta = $cliente->get('empresa', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('GOLEM_TOKEN'),
],
'http_errors' => false,
]);
echo $respuesta->getStatusCode(), PHP_EOL, $respuesta->getBody(), PHP_EOL; Respuestas
200 application/json
La empresa del token.
Esquema Empresa.
{
"ruc": "1790000000001",
"razonSocial": "TU EMPRESA S.A.",
"nombreComercial": "TU EMPRESA",
"regimen": "GENERAL",
"obligadoContabilidad": true,
"contribuyenteEspecial": false,
"resolucionContribuyenteEspecial": null,
"agenteRetencion": true,
"resolucionAgenteRetencion": "1",
"ambiente": "PRODUCCION",
"creditosDisponibles": 48,
"firma": {
"configurada": true,
"vigente": true,
"vence": "2027-03-01",
"porVencer": false
},
"token": {
"nombre": "ERP principal",
"prefijo": "glm_prod_7Qx4",
"ambiente": "PRODUCCION",
"puntoPorDefecto": {
"establecimiento": "001",
"puntoEmision": "001"
},
"puntosPermitidos": null
},
"establecimientos": [
{
"codigo": "001",
"descripcion": "Matriz",
"direccion": "Av. Amazonas N24-03 y Colón, Quito",
"matriz": true,
"puntosEmision": [
{
"codigo": "001",
"descripcion": "Caja 1",
"siguientesSecuenciales": {
"factura": 150,
"notaCredito": 10,
"retencion": 23
}
},
{
"codigo": "002",
"descripcion": "Tienda en línea",
"siguientesSecuenciales": {
"factura": 1,
"notaCredito": 1,
"retencion": 1
}
}
]
}
]
} Errores: HTTP 401, 429, 500
| HTTP | Código | Causa y solución |
|---|---|---|
| 401 | TOKEN_REQUERIDO | Falta la cabecera Envía |
| 401 | TOKEN_INVALIDO | El token no existe o no tiene el formato de un token de Golem. Copia el token completo, con su prefijo. Si no lo tienes, crea otro: Golem no puede mostrarlo de nuevo. |
| 401 | TOKEN_REVOCADO | El token fue revocado. Crea otro en Cuenta > API e integraciones. |
| 429 | LIMITE_EXCEDIDO | Se superó un límite de solicitudes por minuto. Repite la solicitud después de los segundos de |
| 500 | ERROR_INTERNO | Error inesperado de Golem. Si ocurrió al emitir, repite la solicitud con la misma |
Formato y lista completa en Errores.