FISCALISTO / API / REFERENCIA
Firmar el contrato con el PAC
Una sola vez por RFC antes de timbrar en producción: firma el contrato de servicio del PAC (Finkok) con la e.firma del emisor. La e.firma se usa en memoria para esa firma y no se guarda, salvo que mande keep_for_downloads: true para pedirle al SAT las facturas del emisor (POST /v1/sat_downloads); entonces se guarda cifrada y puede borrarla con DELETE.
bearerAuthAutorizaciónBearer <llave>Su llave secreta: fk_test_… en pruebas, fk_live_… en producción. Desarrolladores › Llaves.
id*stringEl id del objeto.
Idempotency-Key?stringOpcional (los SDK la mandan solos). Si la respuesta se pierde, repita la solicitud con el mismo valor durante 24 horas: contesta lo mismo, con idempotent-replayed: true, y no lo hace dos veces (ni crea, ni manda correos, ni cobra).
1 <= length <= 255application/json- body
cer*stringEl archivo .cer en base64 (puede traer el prefijo data:).
1 <= length <= 87386key*stringEl archivo .key en base64 (puede traer el prefijo data:).
1 <= length <= 87386password*stringLa contraseña de la llave privada (.key). Se usa para abrirla y no se guarda en texto.
1 <= length <= 256keep_for_downloads?booleantrue para guardarla (cifrada) y poder pedir al SAT las facturas del emisor con POST /v1/sat_downloads. Sin esto solo firma el contrato con el PAC y no se guarda.
Correcto.
application/json- response
Un emisor: un RFC que timbra desde su cuenta API.
id*stringIdentificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_).
livemode*booleantrue en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT.
object*stringQué tipo de objeto es («invoice», «customer»…).
tax_id*stringRFC (Rfc), 12 caracteres una persona moral y 13 una física.
legal_name*|Nombre o razón social tal como está en la constancia de situación fiscal, sin el régimen de capital (sin «S.A. de C.V.»).
tax_system*|Régimen fiscal (RegimenFiscal), clave de c_RegimenFiscal: 601, 612, 626…
zip*|Código postal del domicilio fiscal, 5 dígitos, como en la constancia de situación fiscal. El de un emisor es el lugar de expedición (LugarExpedicion) de sus comprobantes.
status*stringactive: puede timbrar. needs_certificate: falta su CSD. needs_efirma: falta firmar una vez el contrato con el PAC con su e.firma (solo en producción). certificate_expired: su CSD venció. archived: archivado.
"active""needs_certificate""certificate_expired""needs_efirma""archived"requirement*|Qué le falta al emisor para timbrar, y cómo dárselo.
certificate*|El sello digital (CSD) cargado: número de serie y vencimiento.
sat_downloads*Si puede pedirle al SAT sus facturas (POST /v1/sat_downloads): available es true en pruebas, y en producción mientras su e.firma guardada esté vigente (efirma_expires_at).
employer_registration*|Registro patronal ante el IMSS (RegistroPatronal), 11 caracteres. Necesario para timbrar nómina.
curp*|CURP, 18 caracteres.
stamps_as*stringRFC con el que se timbra: el del emisor en producción y el de pruebas del SAT (EKU9003173C9) en pruebas.
sandbox*|El entorno de prueba (sbx_…) al que pertenece, o null si es de la cuenta. Vea /v1/sandboxes.
test_clock*|Su reloj de prueba (solo emisores de prueba): la hora que es «hoy» para él, o null si va con la hora real. Vea POST /v1/issuers/{id}/test_clock.
created_at*|Cuándo se creó, ISO 8601 con la hora de la Ciudad de México (-06:00).
archived_at*|Cuándo se archivó (ya no timbra), o null.
metadata*Sus propios datos: hasta 50 llaves de 40 caracteres con valores de texto de hasta 500. No van al CFDI; vuelven en el objeto y en los webhooks.
curl -X POST 'https://api.fiscalisto.com/v1/issuers/string/efirma' \ -H 'Authorization: Bearer fk_test_…' \ -H 'Idempotency-Key: 8f14e45f-ceea-467a-9575-6a1b0e5f3c21' \ -H 'Content-Type: application/json' \ -d '{ "cer": "MIIF+TCCA+GgAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTY=", "key": "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI", "password": "12345678a", "keep_for_downloads": true}'{ "id": "iss_OufpKqnrvx9p", "object": "issuer", "livemode": false, "tax_id": "TOL190312KT4", "legal_name": "TOLPI", "tax_system": "601", "zip": "64000", "status": "active", "requirement": null, "certificate": { "serial_number": "30001000000500003416", "expires_at": "2027-05-18T05:43:51-06:00" }, "sat_downloads": { "available": true, "efirma_expires_at": null }, "employer_registration": null, "curp": null, "stamps_as": "EKU9003173C9", "sandbox": null, "test_clock": null, "created_at": "2026-10-24T10:15:42-06:00", "archived_at": null, "metadata": { "cliente": "42" }}Subir el CSD POST
El certificado de sello digital (.cer y .key en base64) y la contraseña de la llave. Se guarda cifrado y solo se usa para sellar. En pruebas se revisa pero se timbra con el CSD de pruebas del SAT.
Borrar la e.firma guardada DELETE
Borra la e.firma que guardó con keep_for_downloads. El emisor sigue timbrando; ya no puede pedir descargas al SAT hasta que la mande de nuevo.