Crear punto de venta
Registra un punto de venta (caja o canal de facturación) en un establecimiento ya creado. Este proceso esta de la mano con los códigos otorgados por el ministerio de hacienda referentes a los puntos de venta autorizados para el contribuyente. Úsalo al onboarding de una sucursal o al agregar una nueva caja antes de emitir DTE.
En lugar de crear a mano las secuencias de correlativos por tipo de documento o manejar políticas de reintentos para no perder la secuencia por fallas en la API de Hacienda, solo envías el NRC y el código oficial del POS; Lumen inicializa automáticamente las secuencias para el año actual.
Método: POST
Endpoint
Section titled “Endpoint”https://api-sandbox.lumendte.com/v1/establishments/{officialEstablishmentCode}/points-of-salehttps://api.lumendte.com/v1/establishments/{officialEstablishmentCode}/points-of-saleofficialEstablishmentCode es el código oficial del establecimiento (ej. M001). Debe existir previamente; ver Crear establecimiento.
Payload
Section titled “Payload”| Campo | Tipo | Descripción |
|---|---|---|
taxRegistrationNumber | string | NRC del contribuyente que actuara como emisor de los DTEs (con o sin guiones) |
officialPointOfSaleCode | string | Código oficial del punto de venta asignado por Hacienda (ej. P001) |
internalPointOfSaleCode | string | (Opcional) Código interno definido por tu sistema (máx. 10) |
name | string | (Opcional) Nombre descriptivo del punto de venta (máx. 100) |
Ejemplo de Solicitud
Section titled “Ejemplo de Solicitud”curl -X POST https://api-sandbox.lumendte.com/v1/establishments/M001/points-of-sale \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer tu_access_token" \ -d '{ "taxRegistrationNumber": "123456-7", "officialPointOfSaleCode": "P001", "internalPointOfSaleCode": "POS-01", "name": "Caja Principal" }'const axios = require("axios");
const config = { method: "post", url: "https://api-sandbox.lumendte.com/v1/establishments/M001/points-of-sale", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: "Bearer tu_access_token", }, data: { taxRegistrationNumber: "123456-7", officialPointOfSaleCode: "P001", internalPointOfSaleCode: "POS-01", name: "Caja Principal", },};
axios(config) .then((response) => { console.log( "Punto de venta creado:", response.data.officialPointOfSaleCode, ); }) .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/establishments/M001/points-of-sale', headers={ 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer tu_access_token', }, json={ 'taxRegistrationNumber': '123456-7', 'officialPointOfSaleCode': 'P001', 'internalPointOfSaleCode': 'POS-01', 'name': 'Caja Principal', },)
if response.ok: data = response.json() print('Punto de venta creado:', data['officialPointOfSaleCode'])else: print('Error en la solicitud:', response.text)Response Success
Section titled “Response Success”Status: 201 Created
Guarda officialPointOfSaleCode para usarlo al emitir documentos (header x-point-of-sale-code).
{ "officialPointOfSaleCode": "P001", "internalPointOfSaleCode": "POS-01", "name": "Caja Principal", "isActive": true, "createdAt": "2026-08-06T18:30:00.000Z", "updatedAt": "2026-08-06T18:30:00.000Z", "taxRegistrationNumber": "123456-7", "officialEstablishmentCode": "M001"}Ejemplo de errores
Section titled “Ejemplo de errores”404 — Establecimiento no encontrado
Section titled “404 — Establecimiento no encontrado”El officialEstablishmentCode no existe para la empresa indicada por el NRC.
{ "errorCode": "ESTABLISHMENT_NOT_FOUND", "statusCode": 404, "message": "Establishment with officialEstablishmentCode M001 was not found for company 123456-7", "error": "Not Found"}Fix: Verifica el NRC y el código oficial, o crea el establecimiento antes de registrar el punto de venta.
409 — Punto de venta duplicado
Section titled “409 — Punto de venta duplicado”Ya existe un punto de venta con el mismo officialPointOfSaleCode en ese establecimiento.
{ "errorCode": "POINT_OF_SALE_ALREADY_EXISTS", "statusCode": 409, "message": "A point of sale with officialPointOfSaleCode P001 already exists for establishment M001", "error": "Conflict"}Fix: Usa otro código oficial o reutiliza el punto de venta que ya registraste.