Subir el sello digital
El CSD es lo único que timbra. Hasta que un emisor tenga el suyo, cualquier intento de facturar contesta issuer_not_ready. Esto te deja mandarlo sin abrir el panel.
Lo que estás mandando
Con la llave privada y su contraseña cualquiera puede emitir comprobantes a nombre de ese contribuyente. Van por TLS, se guardan cifradas, y nunca se escriben en un log ni en un reporte de errores.
No hay forma de volver a leerlas.
No existe un GET
de este recurso, y la respuesta
sólo trae lo que el propio SAT publica del certificado: su serie, de quién es y hasta cuándo dura. Tú ya tienes esos bytes;
una segunda copia legible sería un segundo lugar del que se pueden filtrar.
Parámetros
- data arreglo de strings · requerido
- Los archivos en base64. Puede ser el .cer y el .key por separado, el .zip del SAT tal cual, o los dos. No leemos los nombres: qué es cada archivo lo sacamos de su contenido. Un solo string vale como arreglo de uno, y files funciona igual que data.
- passwords arreglo de strings · requerido en la práctica
- La contraseña de la llave privada. Se prueba contra todas las llaves que mandes, así que si subes el sello y la e.firma juntos manda las dos y nosotros vemos cuál abre cuál.
Respuesta
201
cuando guardamos al menos uno, con lo que quedó en data. Si no guardamos ninguno contestamos
422
con el mismo cuerpo, y refused
dice qué pasó con cada cosa.
El RFC del certificado tiene que ser el del emisor; si no, se rechaza con wrong_taxpayer.
Al guardar un CSD tomamos la razón social del emisor del certificado, sin el régimen de capital, porque es la que el
SAT tiene. Para dar de alta el emisor antes, ver alta y consulta de emisores.
- id entero
- Identificador del certificado dentro de oden.tax.
- kind string
- csd para el sello, fiel para la e.firma. Lo leemos del keyUsage del certificado, no del nombre del archivo.
- certificate_number string
- El número de serie que le puso el SAT, veinte dígitos.
- tax_id string
- El RFC del contribuyente al que pertenece.
- valid_from / expires_at string
- Su vigencia en ISO 8601. Un CSD dura cuatro años.
- usable booleano
- Si con éste se puede timbrar hoy. Una e.firma nunca lo es.
- refused arreglo
- Lo que no guardamos y por qué: wrong_taxpayer, expired, missing_key o bad_password. Un certificado vencido trae además su expires_at, para que puedas compararlo contra el archivo que tengas.
Errores
- no_certificate
- 422. No reconocimos ningún certificado en lo que mandaste.
- not_found
- 404. El issuer_id de la ruta no es de un emisor de tu cuenta, o no existe.
- payload_too_large
- 413. El envío pasa de 12 MB. Un CSD y su llave pesan unos pocos kilobytes.