Ir al contenido

Varios contribuyentes

El caso del contador o de la casa de software: una sola integración facturando por varios contribuyentes. Cada RUC lleva su certificado de firma, su logo y su numeración; tu cuenta los agrupa.

Nada cambia en las llamadas: el emisor.ruc del comprobante decide con qué certificado se firma y con qué logo sale el RIDE. La única condición es que el RUC esté asignado a tu cuenta — emitir por un RUC ajeno es un 403 (FACTO-2020). Los RUC los asigna el operador del servicio al darte de alta.

Por cada RUC nuevo, dos pasos (más la numeración de siempre):

Ventana de terminal
curl -X PUT https://api-test.facto.lat/v1/emisores/0999999999001/certificado \
-H "x-api-key: $LLAVE" \
-F "certificado=@certificado.p12" \
-F "contrasena=la-del-contribuyente"

El .p12 viaja como archivo (en Swagger es un botón de elegir archivo; límite 256 KB) y queda cifrado en reposo. La respuesta confirma lo que importa:

{
"ruc": "0999999999001",
"titular": "NOMBRE DEL TITULAR",
"certificadora": "AC BANCO CENTRAL DEL ECUADOR",
"venceEn": "2027-05-01T16:50:21.000Z",
"diasParaVencer": 262,
"estado": "vigente"
}

Todo se comprueba al subirlo, no en la primera factura: que la contraseña lo abra, que no esté vencido y que pertenezca a ese RUC. El error aparece cuando estás mirando, no el día 30 a las nueve de la noche.

Ventana de terminal
# Los datos fiscales que salen en el XML y el RIDE
curl -X PUT https://api-test.facto.lat/v1/emisores/0999999999001/datos \
-H "x-api-key: $LLAVE" -H "Content-Type: application/json" \
-d '{"razonSocial":"...","dirMatriz":"...","obligadoContabilidad":"SI"}'
# El logo del RIDE (PNG o JPEG)
curl -X PUT https://api-test.facto.lat/v1/emisores/0999999999001/logo \
-H "x-api-key: $LLAVE" -F "logo=@logo-del-cliente.png"
Ventana de terminal
curl -s https://api-test.facto.lat/v1/emisores -H "x-api-key: $LLAVE"

Lista tus contribuyentes con el estado de cada certificado y sus diasParaVencer. Un certificado vencido no firma nada (FACTO-1016): ponle un aviso a los 30 días en tu sistema y renueva con calma.

  • Renovación: el mismo PUT del certificado reemplaza el anterior (la respuesta es 200 en vez de 201). Sin ventana de corte.
  • Baja: DELETE /v1/emisores/{ruc}/certificado. Los comprobantes ya autorizados no se ven afectados — el XML firmado es inmutable.