API para que integradores externos (apps de terceros, POS, e-commerce, etc.) emitan y consulten comprobantes fiscales en Fixed.

Cómo probar con Swagger

Paso 1 — Entendé en qué ambiente estás

Fixed tiene dos ambientes separados:

🟢 Producción🧪 Testing - Sandbox
¿Qué pasa con los comprobantes?Son reales: se envían a DGI y le llegan a tus clientesSon de prueba: no se envían a DGI, ni a los clientes
¿Cuándo usarlo?Cuando tu sistema ya está listo para facturarPara probar la integración en un ambiente de prueba
URL de este ambientehttps://southamerica-east1-fixedproduccion-fiv2q.cloudfunctions.net/apiFixedhttps://southamerica-east1-fixedtesting-10ce2.cloudfunctions.net/apiFixed

📍 La URL base de producción es: https://southamerica-east1-fixedproduccion-fiv2q.cloudfunctions.net/apiFixed.

Paso 2 — Conseguí tus credenciales

  1. Entrá a https://acceso.fixed.uy con tus datos de acceso que usás para Fixed.
  2. Una vez dentro, dirigite a este link: https://acceso.fixed.uy/accesoAPI.

🧪 ¿Es la primera vez que tu empresa prueba en Testing - Sandbox? Antes de seguir, escribinos por el chat de ayuda o a soporte@fixed.uy pidiendo que habilitemos tu empresa en ese ambiente — es un paso único que hace el equipo de Fixed. Recién después de eso vas a poder generar tu clave de Testing en el paso siguiente. Para Producción no hace falta este paso.

  1. En la sección del ambiente que corresponda (Producción o Testing), escribí un nombre corto para identificar la clave (por ejemplo "Mi primera API Key") y hacé clic en "Generar API Key".
  2. Te van a figurar dos códigos: x-api-key y x-api-secret.

⚠️ Copiá los dos códigos ya que Fixed no los vuelve a mostrar. Si los perdés, hay que generar una clave nueva.

Paso 3 — Autenticate en esta página

  1. Un poco más abajo en esta misma página (después de toda esta descripción, al lado de donde dice Servers) vas a encontrar un botón verde que dice Authorize, con un dibujo de candado 🔓.
  2. Hacé clic ahí.
  3. Se abre una ventana con dos casilleros: pegá tu x-api-key en el primero y tu x-api-secret en el segundo.
  4. Hacé clic en Authorize dentro de esa ventana, y después en Close para cerrarla.

Paso 4 — Probá un endpoint

  1. Más abajo en esta página vas a ver una lista de acciones posibles (por ejemplo POST /ventaCrear). Hacé clic en cualquiera para desplegarla.
  2. Adentro, hacé clic en el botón Try it out.
  3. Va a aparecer un cuadro de texto con un ejemplo ya armado. Si ves un desplegable llamado Examples, podés elegir entre varios casos distintos (venta simple, con cliente, en dólares, a crédito, etc.).
  4. Podés dejarlo como está para probar, o editar los valores a mano.
  5. Hacé clic en Execute (más abajo) y mirá la respuesta que aparece debajo.

No necesitás configurar el RUT ni identificadores internos de empresa. El servidor asocia automáticamente tus credenciales con tu empresa en Fixed según el par api-key / api-secret.

¿Tenés dudas?

Escribinos por el chat de ayuda de Fixed o a soporte@fixed.uy.


Flujo recomendado de integración

  1. POST /validarCredenciales — verificar que las credenciales sean válidas antes de comenzar.
  2. POST /localesListado — obtener locales disponibles (opcional; necesario si la empresa tiene más de uno).
  3. POST /serviciosRubrosListado — obtener rubros existentes (opcional; se crean automáticamente al emitir).
  4. POST /consultarRUTDGI — consultar razón social, domicilio fiscal y tipo de contribuyente de un RUT en DGI (opcional; útil para prellenar los datos del cliente antes de emitir).
  5. POST /obtenerProximoNumero — consultar la serie y el próximo número que se usaría para un tipo de comprobante (opcional, solo informativo; no reserva el número).
  6. POST /ventaCrear — emitir el CFE. El campo tasaIva de cada línea debe ser el valor cfeDgi de la tasa (p.ej. "Basic", "Min", "Exe"). La respuesta incluye:
    • urlA4: comprobante A4 en PDF.
    • urlTicket: ticket térmico en PDF (formato estrecho).
    • htmlTicket: ticket en HTML (útil para preview o impresión web).
  7. POST /imprimirCFE — regenerar URLs e HTML de un CFE ya emitido si se necesitan nuevamente.
  8. POST /ventaConsulta / POST /consultaFacturacionDia — consultar estado o listar comprobantes.
  9. POST /ventaDevolucionTotalCrear — emitir nota de crédito por devolución total.

Códigos de error

Cada respuesta de error trae un codigoError corto además de una descripcion en texto libre. Un mismo código puede significar cosas distintas según el endpoint (por ejemplo E02 es "moneda incorrecta" en /ventaCrear pero "empresa no encontrada" en otros) — siempre hay que interpretarlo junto con el endpoint que lo devolvió, no de forma aislada.

Comunes a cualquier endpoint

CódigoSignificado
A01Faltan las credenciales (x-api-key / x-api-secret)
A02x-api-key inválida o inactiva
A03x-api-secret inválido
A04Error interno validando credenciales
A05La API pública está desactivada temporalmente
A06El plan de la empresa no incluye acceso a la API
V01El body enviado no cumple con el formato esperado (tipo de dato incorrecto, campo obligatorio faltante, o campo no reconocido)
V02Error inesperado no capturado por el endpoint

POST /ventaCrear

CódigoSignificado
E02Moneda incorrecta
E03Empresa no encontrada
E04Sin firma electrónica vigente
E05Sin CAE disponible
E08Formato de fecha inválido, debe ser dd/mm/aaaa
E15totalAPagar no coincide con el total calculado
E16montoBruto no puede ser 2
E18Datos de cliente inválidos para el tipo de documento indicado
E19Venta > 5000 UI sin identificar al cliente por RUT
E20formaDePago inválida
E21cotizacion inválida (debe ser mayor a 0)
E22Ya hay una emisión en curso con esa idempotencyKey
E23Esa idempotencyKey ya fue usada con datos distintos
X01-X05Error inesperado generando la venta (ver descripcion para el detalle)

POST /ventaDevolucionTotalCrear

CódigoSignificado
E03Empresa no encontrada
E04Sin firma electrónica vigente
E05Sin CAE disponible
E08Formato de fecha inválido, debe ser dd/mm/aaaa
E10Venta original no encontrada
E11La venta original fue rechazada por DGI, no se puede emitir una NC sobre ella
E17totalADevolver no coincide con el total de la factura original
E22Ya hay una emisión en curso con esa idempotencyKey
E23Esa idempotencyKey ya fue usada con datos distintos
X03-X06Error inesperado generando la devolución (ver descripcion para el detalle)

POST /ventaConsulta y POST /imprimirCFE

CódigoSignificado
C03Empresa no encontrada
C08El idCFE no existe para la empresa

POST /consultaFacturacionDia

CódigoSignificado
E02Empresa no encontrada
E08Formato de fecha inválido, debe ser dd/mm/aaaa

POST /obtenerProximoNumero

CódigoSignificado
E01Empresa no encontrada
E02No existe un CAE disponible para ese tipo de comprobante
E04tipoDocumento inválido

POST /consultarCFERecibidos

CódigoSignificado
E01Empresa no encontrada
E02El rango entre fechaDesde y fechaHasta supera los 31 días
E03fechaDesde es mayor a fechaHasta
E04Formato de fecha inválido, debe ser dd/mm/aaaa

POST /consultarRUTDGI

CódigoSignificado
E01Empresa no encontrada
E02Sin firma electrónica vigente
E03RUT no encontrado en DGI
E04Se superó el límite de 20 consultas por minuto

POST /clienteMostrar, POST /localesListado, POST /serviciosRubrosListado

CódigoSignificado
E02Empresa no encontrada

POST /serviciosRubrosAgregarEditar

CódigoSignificado
E01accion inválida (debe ser "agregar" o "editar")
E02Empresa no encontrada