Ir al contenido

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.

Lo más fácil es hacerlo en el panel. Por API:

Ventana de terminal
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).

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.

Ventana de terminal
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.

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:

Ventana de terminal
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_mismatch si no).
  • Antes de que venza te avisamos con el webhook certificate.expiring. Sin un certificado vigente no se puede emitir (422 issuer_certificate_missing).