Emisores

Establecimientos y numeración

Desde dónde emites cada comprobante y cómo continúa tu secuencial.

El número de un comprobante tiene tres partes: 001-002-000000123 es el establecimiento 001, el punto de emisión 002 y el secuencial 123. En Fiscalbase, cada combinación de emisor, ambiente, tipo de comprobante, establecimiento y punto de emisión es una numeración (series), y nosotros entregamos sus números en orden y sin repetidos, aunque emitas miles en paralelo. Solo saltamos un número cuando el SRI dice que ya lo tiene otro comprobante tuyo: lo explicamos más abajo.

Abrir una numeración

curl -X POST https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/series \
  -H "Authorization: Bearer $FISCALBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "document_type": "invoice", "establishment": "001", "emission_point": "002" }'

La numeración se abre en el ambiente de tu clave. document_type es el object del comprobante: invoice, credit_note, debit_note, withholding, delivery_note o purchase_settlement.

En Pruebas y Producción, el establecimiento debe constar abierto para tu RUC en el registro del SRI, y su dirección sale de ahí: la que va en tus comprobantes es la que el SRI conoce. En Sandbox puedes usar cualquiera.

Si vienes de otro sistema

Si ya emitiste con ese establecimiento y punto hasta el 4812, continúa desde el siguiente:

{
  "document_type": "invoice",
  "establishment": "001",
  "emission_point": "001",
  "next_number": 4813
}

Así no hay secuenciales repetidos entre tu sistema anterior y Fiscalbase. last_number te dice siempre el último número entregado.

Si la numeración ya existe, adelántala con next_number, como el secuencial inicial del Facturador SRI. Solo avanza: si la serie ya entregó ese número, respondemos 422.

curl -X PATCH https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/series/$SERIES_ID \
  -H "Authorization: Bearer $FISCALBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "next_number": 4813 }'

Si no sabes cuál fue tu último número, no lo calcules: sube tu historial, o solo los reportes de comprobantes emitidos que descargas de SRI en línea. La numeración avanza sola hasta el número más alto que encontremos, aunque el SRI ya no entregue ese comprobante y no podamos importarlo.

Qué numeración usa un comprobante

Al emitir, puedes elegir establishment y emission_point. Si no los envías, usamos la numeración activa de menor establecimiento y punto. Una vez numerado, el comprobante no cambia de numeración, ni siquiera al corregirlo.

Cada numeración trae issued_today: los comprobantes suyos con fecha de emisión de hoy, hora de Ecuador.

Los nombres y la dirección se cambian por establecimiento y por punto, y afectan a las numeraciones de todos los tipos de comprobante a la vez:

curl -X PATCH https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/establishments/001 \
  -H "Authorization: Bearer $FISCALBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Matriz", "address": "Av. Amazonas N24-03, Quito" }'

curl -X PATCH https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/establishments/001/emission-points/002 \
  -H "Authorization: Bearer $FISCALBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Caja principal" }'

También aceptan code, pero el código ya está en los números y las claves de acceso de lo que emitiste: solo cambia mientras nada se haya numerado con él (409 después). Fuera de Sandbox, el establecimiento nuevo debe constar abierto en el registro del SRI.

Para dejar de emitir desde un punto, desactívalo. Los comprobantes ya numerados conservan su número:

curl -X PATCH https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/series/$SERIES_ID \
  -H "Authorization: Bearer $FISCALBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "active": false }'

Si no queda ninguna numeración activa para ese comprobante, emitir responde 409 diciendo qué falta.

Cuando el SRI ya tiene el número

Si otro sistema, o tus pruebas de años anteriores, ya usaron un número, el SRI devuelve el comprobante con el error 45, secuencial registrado. Primero comprobamos que no sea el mismo comprobante que el SRI ya recibió. Si no lo es, depende del ambiente:

  • En Sandbox y Pruebas lo resolvemos solos. El comprobante toma otro número con una clave de acceso nueva y se envía de nuevo. Si ese también está ocupado, saltamos cada vez más lejos (1, 2, 4, 8… números) hasta encontrar uno libre, hasta 12 veces seguidas. En Pruebas nadie lleva la cuenta de lo que se probó antes, y un salto ahí no tiene efecto tributario.
  • En Producción nunca lo movemos sin preguntarte. Ese número lo tiene un comprobante autorizado que no conocemos: quizá falta importar tu historial, o tu sistema anterior sigue emitiendo en el mismo punto. El comprobante queda returned con el mensaje 45, y lo renumeras con una llamada:
curl -X POST https://api.fiscalbase.io/v1/ec/invoices/$ID/renumber \
  -H "Authorization: Bearer $FISCALBASE_API_KEY"

Toma el siguiente número de su serie, conserva su contenido y su fecha de emisión, y vuelve a pending. Para que no vuelva a pasar con los siguientes, importa tus reportes de emitidos o adelanta next_number.

Cada salto queda registrado en la numeración, con el número que el SRI rechazó y el que tomó el comprobante:

curl https://api.fiscalbase.io/v1/ec/entities/$ENTITY_ID/series/$SERIES_ID/renumberings \
  -H "Authorization: Bearer $FISCALBASE_API_KEY"
{
  "object": "renumbering",
  "document_id": "01926f3d-…",
  "refused_number": "001-001-000000012",
  "number": "001-001-000000013",
  "mode": "automatic"
}

El número es definitivo al autorizarse

Mientras un comprobante está pending o returned, su number y su access_key pueden cambiar por un salto. Son definitivos cuando recibes invoice.authorized: toma el número de ahí, no de la respuesta al emitir.

En esta página