Crear establecimiento
Registra los establecimientos (casa matriz o sucursales) de una empresa ya creada en Lumen. Tras registrar el establecimiento, crea sus puntos de venta para poder emitir documentos tributarios electrónicos.
Método: POST
Endpoint
Section titled “Endpoint”https://api-sandbox.lumendte.com/v1/companies/{taxRegistrationNumber}/establishmentshttps://api.lumendte.com/v1/companies/{taxRegistrationNumber}/establishmentstaxRegistrationNumber es el NRC de la empresa. Puedes enviarlo con o sin guiones.
Payload
Section titled “Payload”| Campo | Tipo | Descripción |
|---|---|---|
establishmentType | string | Tipo: HEADQUARTERS (casa matriz), BRANCH (sucursal), WAREHOUSE (bodega) o PATIO |
officialEstablishmentCode | string | Código otorgado por la plataforma factura.gob.sv (ej. M001 para casa matriz) |
internalEstablishmentCode | string | (Opcional) Código interno definido por la empresa o tu sistema (máx. 10) |
email | string | Correo de contacto del establecimiento |
dialCode | string | Código de marcado (ej. +503) del teléfono del establecimiento |
phone | string | Teléfono (puedes enviar guiones) |
address | string | Dirección física del establecimiento |
departmentCode | string | Código de departamento (exactamente 2 caracteres). Ver Departamentos |
districtCode | string | Código de distrito (máx. 3 caracteres). Ver Distritos. Con él, Lumen obtiene el municipalityCode interno |
departmentCode y districtCode deben coincidir con un code de los catálogos y ser coherentes entre sí (el distrito debe pertenecer al departamento).
Ejemplo de Solicitud
Section titled “Ejemplo de Solicitud”curl -X POST https://api-sandbox.lumendte.com/v1/companies/123456-7/establishments \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tu_access_token" \ -d '{ "establishmentType": "BRANCH", "officialEstablishmentCode": "M001", "email": "sucursal.centro@elsol.com", "dialCode": "+503", "phone": "2222-1111", "address": "Av. Roosevelt 123, San Salvador", "departmentCode": "06", "districtCode": "01" }'const axios = require("axios");
const config = { method: "post", url: "https://api-sandbox.lumendte.com/v1/companies/123456-7/establishments", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: "Bearer tu_access_token", }, data: { establishmentType: "BRANCH", officialEstablishmentCode: "M001", email: "sucursal.centro@elsol.com", dialCode: "+503", phone: "2222-1111", address: "Av. Roosevelt 123, San Salvador", departmentCode: "06", districtCode: "01", },};
axios(config) .then((response) => { console.log( "Establecimiento creado:", response.data.officialEstablishmentCode, ); }) .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/establishments', headers={ 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer tu_access_token', }, json={ 'establishmentType': 'BRANCH', 'officialEstablishmentCode': 'M001', 'email': 'sucursal.centro@elsol.com', 'dialCode': '+503', 'phone': '2222-1111', 'address': 'Av. Roosevelt 123, San Salvador', 'departmentCode': '06', 'districtCode': '01', },)
if response.ok: data = response.json() print('Establecimiento creado:', data['officialEstablishmentCode'])else: print('Error en la solicitud:', response.text)Response Success
Section titled “Response Success”Status: 201 Created
{ "establishmentType": "BRANCH", "officialEstablishmentCode": "M001", "email": "sucursal.centro@elsol.com", "dialCode": "503", "phone": "22221111", "address": "Av. Roosevelt 123, San Salvador", "departmentCode": "06", "districtCode": "01", "taxRegistrationNumber": "123456-7"}Ejemplo de errores
Section titled “Ejemplo de errores”400 — Payload inválido
Section titled “400 — Payload inválido”establishmentType fuera de los valores permitidos, email inválido o códigos geográficos con longitud incorrecta.
{ "errorCode": "INVALID_PARAMETERS", "statusCode": 400, "message": [ "establishmentType must be one of: HEADQUARTERS, BRANCH, WAREHOUSE, PATIO", "email must be a valid email address", "departmentCode must be exactly 2 characters long" ], "error": "Bad Request"}Fix: Corrige el valor de establishmentType, el email y las longitudes de los códigos; luego vuelve a enviar el JSON completo.
409 — Establecimiento duplicado
Section titled “409 — Establecimiento duplicado”Ya existe un establecimiento con el mismo officialEstablishmentCode para una misma empresa.
{ "errorCode": "ESTABLISHMENT_ALREADY_EXISTS", "statusCode": 409, "message": "An establishment with officialEstablishmentCode M001 already exists for company 123456-7", "error": "Conflict"}Fix: Revisa que no estes intentando registrar un establecimiento con el mismo officialEstablishmentCode para una misma empresa.