Configurar credenciales
Registra las credenciales de facturación electrónica otorgadas por Hacienda de una empresa previamente registrada. Úsalo en el onboarding del emisor, antes de cargar el certificado y emitir DTE.
En lugar de gestionar tú mismo el almacenamiento seguro de claves ante Hacienda, solo envías environment, apiKey, publicKey y privateKey; Lumen las cifra en reposo y nunca las reexpone en la respuesta.
Método: POST
Endpoint
Section titled “Endpoint”https://api-sandbox.lumendte.com/v1/companies/{taxRegistrationNumber}/compliance-configshttps://api.lumendte.com/v1/companies/{taxRegistrationNumber}/compliance-configstaxRegistrationNumber es el NRC de la empresa. Puedes enviarlo con o sin guiones. La empresa debe existir previamente; ver Crear empresa.
Payload
Section titled “Payload”| Campo | Tipo | Descripción |
|---|---|---|
environment | string | Ambiente: SANDBOX o PRODUCTION |
apiKey | string | API key de la empresa ante Hacienda. Se almacena cifrada |
publicKey | string | Clave pública asociada. Se almacena cifrada |
privateKey | string | Clave privada asociada. Se almacena cifrada |
Puedes tener una configuración por empresa y ambiente. Tras el 201, el estado queda en PENDING_CERTIFICATE hasta que cargues el certificado de firma electrónica.
Ejemplo de Solicitud
Section titled “Ejemplo de Solicitud”curl -X POST https://api-sandbox.lumendte.com/v1/companies/123456-7/compliance-configs \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tu_access_token" \ -d '{ "environment": "SANDBOX", "apiKey": "ak_live_8f3c9d2b7a1e4f5b", "publicKey": "pk_8f3c9d2b7a1e4f5b", "privateKey": "sk_8f3c9d2b7a1e4f5b" }'const axios = require("axios");
const config = { method: "post", url: "https://api-sandbox.lumendte.com/v1/companies/123456-7/compliance-configs", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: "Bearer tu_access_token", }, data: { environment: "SANDBOX", apiKey: "ak_live_8f3c9d2b7a1e4f5b", publicKey: "pk_8f3c9d2b7a1e4f5b", privateKey: "sk_8f3c9d2b7a1e4f5b", },};
axios(config) .then((response) => { console.log("Configuración creada:", response.data.configId); }) .catch((error) => { console.error( "Error en la solicitud:", error.response ? error.response.data : error.message, ); });import requests
response = requests.post( 'https://api-sandbox.lumendte.com/v1/companies/123456-7/compliance-configs', headers={ 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer tu_access_token', }, json={ 'environment': 'SANDBOX', 'apiKey': 'ak_live_8f3c9d2b7a1e4f5b', 'publicKey': 'pk_8f3c9d2b7a1e4f5b', 'privateKey': 'sk_8f3c9d2b7a1e4f5b', },)
if response.ok: data = response.json() print('Configuración creada:', data['configId'])else: print('Error en la solicitud:', response.text)Response Success
Section titled “Response Success”Status: 201 Created
Guarda el configId: lo necesitas para cargar el certificado digital. La respuesta no incluye apiKey, publicKey ni privateKey.
{ "configId": "28adc4f9-31bc-45fe-a817-e36404145276", "status": "PENDING_CERTIFICATE", "taxRegistrationNumber": "123456-7", "environment": "SANDBOX", "createdAt": "2026-08-07T18:30:00.000Z"}Ejemplo de errores
Section titled “Ejemplo de errores”404 — Empresa no encontrada
Section titled “404 — Empresa no encontrada”No existe una empresa con ese NRC bajo tu cuenta.
{ "errorCode": "COMPANY_NOT_FOUND", "message": "Company with taxRegistrationNumber 123456-7 was not found for tenant <tenant-uuid>", "error": "Not Found", "statusCode": 404}Fix: Verifica el NRC del path o crea la empresa antes de registrar credenciales.
409 — Configuración duplicada
Section titled “409 — Configuración duplicada”Ya existe una configuración de cumplimiento para esa empresa en el mismo environment.
{ "errorCode": "COMPANY_CREDENTIAL_ALREADY_EXISTS", "message": "A compliance configuration already exists for taxRegistrationNumber 123456-7 in environment SANDBOX", "error": "Conflict", "statusCode": 409}Fix: Usa el environment contrario (SANDBOX / PRODUCTION) o continúa con el configId ya creado para cargar el certificado.