Emisores y certificados
Un emisor es un RUC que factura con Chaski. Una cuenta puede tener varios (según su plan), cada uno con sus establecimientos, puntos de emisión y certificado.
Crear el emisor
Sección titulada «Crear el emisor»Lo más fácil es hacerlo en el panel. Por API:
curl https://api.chaski.ec/v1/issuers \ -H "Authorization: Bearer $CHASKI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "ruc": "0993413686001", "legal_name": "FLOW SOLUTIONS TECHNOLOGY FLOWST S.A.S.", "head_office_address": "Samborondón", "required_accounting": true }'Los datos tributarios van en el XML tal como los registra el SRI: razón social, dirección de la matriz, si lleva contabilidad, contribuyente especial, agente de retención y régimen RIMPE (entrepreneur o popular_business).
Puntos de emisión
Sección titulada «Puntos de emisión»Cada factura sale de un punto de emisión, con el formato establecimiento-punto (001-001). El secuencial es propio de cada punto y de cada ambiente.
curl https://api.chaski.ec/v1/issuers/iss_…/emission-points \ -H "Authorization: Bearer $CHASKI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "code": "001-002", "label": "Tienda online" }'Un punto puede tener su propio perfil de marca (logo, color y nombre del remitente del correo). Sirve si facturas varias marcas bajo un mismo RUC. Con un dominio de envío propio, el perfil también define la dirección del remitente.
Certificado de firma (.p12)
Sección titulada «Certificado de firma (.p12)»Chaski firma los XML con tu certificado de firma electrónica (Security Data, Banco Central, ANF, Uanataca u otra entidad). Se sube en base64, con su contraseña:
curl https://api.chaski.ec/v1/issuers/iss_…/certificates \ -H "Authorization: Bearer sk_live_…" \ -H "Content-Type: application/json" \ -d "{ \"file\": \"$(base64 -i firma.p12)\", \"password\": \"…\" }"- Solo se puede subir desde el panel (propietarios y administradores con verificación en dos pasos) o con una key
sk_live_. - El certificado y su contraseña se guardan cifrados. Nunca se devuelven por la API.
- Revisamos que esté vigente y, si el certificado trae una cédula o RUC, que corresponda al emisor (
422 certificate_ruc_mismatchsi no). - Antes de que venza te avisamos con el webhook
certificate.expiring. Sin un certificado vigente no se puede emitir (422 issuer_certificate_missing).
