FISCALISTO / API
Cotizaciones
Mande una cotización con liga: su cliente la ve, la acepta, pide cambios o la rechaza, y la factura se timbra con los mismos conceptos.
Una cotización lleva los conceptos y las condiciones de pago de una factura. Su cliente la recibe con una liga donde la ve, descarga el PDF, la acepta, pide cambios o la rechaza, y usted se entera por webhooks. Al aceptarla, la factura sale de los mismos conceptos: sola, con auto_invoice, o cuando usted la pida.
Crear una
curl https://api.fiscalisto.com/v1/quotes \
-H "Authorization: Bearer $FISCALISTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"tax_id": "ICV060329BY0",
"legal_name": "INMOBILIARIA CVA",
"tax_system": "601",
"zip": "33826",
"email": "compras@cva.example"
},
"payment_form": "03",
"items": [
{ "description": "Desarrollo del sitio web", "product_key": "81112103", "unit_price": 45000 }
],
"terms": "50% de anticipo, entrega en 4 semanas.",
"valid_until": "2026-11-30"
}'items, payment_form, payment_method, use, currency y notes son los de POST /v1/invoices y se revisan con las mismas reglas, así que una cotización siempre se puede facturar. valid_until es su último día (por omisión, en 15 días; hasta un año) y terms sus condiciones, impresas en el PDF.
customer puede ser:
- Un cliente de su catálogo:
"customer": "cus_…". - Sus datos fiscales, como en una factura: se agrega a sus clientes.
- Solo
nameyemail, si aún no le da sus datos fiscales:{ "name": "Juan Pérez", "email": "juan@correo.example" }. Puede agregárselos después, o mandarla conauto_invoicepara que los dé él al aceptarla.
Contesta 201 con la cotización (quo_…) en borrador: su número (COT-12), el total con impuestos y url: null hasta que la mande.
Mandarla
curl https://api.fiscalisto.com/v1/quotes/quo_OufpKqnrvx9p3Kd8wQm2XyT5uBcW8sKdLx/send \
-H "Authorization: Bearer $FISCALISTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "message": "Le comparto la cotización del sitio.", "auto_invoice": true }'Llega al correo del cliente (o a to, hasta 5 correos) con el PDF y la liga, que también viene en url. Con "send_email": false solo se marca enviada y contesta url, para que usted la mande por WhatsApp o desde su sistema. En pruebas el correo solo se envía a las personas de su cuenta API, como el de una factura.
Con auto_invoice: true, al aceptarla la factura se timbra sola con los timbres de su cuenta: de inmediato si ya tiene los datos fiscales del cliente, o en cuanto los dé en la misma página si no. Una cotización en otra moneda no se timbra sola: el tipo de cambio de ese día puede no ser el de hoy.
Lo que hace su cliente
| Evento | Cuándo |
|---|---|
quote.viewed | Abre la liga por primera vez (status: viewed). |
quote.changes_requested | Pide cambios; lo que escribió viene en customer_comment. |
quote.accepted | La acepta (decided_by: customer). Con auto_invoice, después llega invoice.stamped. |
quote.rejected | La rechaza, con su motivo en customer_comment si lo dio. |
Si le dijo que sí por teléfono, márquela con POST /v1/quotes/{id}/accept (decided_by: user).
Cambiarla
POST /v1/quotes/{id} cambia solo lo que mande. Un borrador cambia ahí mismo. Una que ya se envió se vuelve una versión nueva en borrador, con el mismo número y el mismo id (version sube); su cliente sigue viendo la anterior hasta que mande la nueva con /send. Una aceptada, rechazada o facturada ya no cambia (400 quote_invalid).
Una cotización vencida (status: expired) se revive cambiándole valid_until y mandándola otra vez.
Facturarla
curl -X POST https://api.fiscalisto.com/v1/quotes/quo_OufpKqnrvx9p3Kd8wQm2XyT5uBcW8sKdLx/invoice \
-H "Authorization: Bearer $FISCALISTO_API_KEY" \
-H "Idempotency-Key: cot-12-factura"Timbra la factura con sus conceptos y los datos fiscales del cliente y contesta la factura (201). Si no estaba aceptada, la marca aceptada; la cotización queda invoiced con la factura en invoice. Si ya se facturó, contesta esa misma factura: nunca se timbran dos. Sin los datos fiscales del cliente contesta 400 quote_customer_missing; rechazada o vencida, 400 quote_not_invoiceable.
Lo demás
GET /v1/quoteslas lista, las más recientes primero, cada una en su última versión; filtre constatus(draft,sent,viewed,accepted,rejected,expiredoinvoiced).GET /v1/quotes/{id}/pdfdescarga el PDF, con el diseño de PDF del emisor.DELETE /v1/quotes/{id}borra una que nunca se envió; si ya se envió,400 quote_not_draft.
Una cuenta crea hasta 20,000 cotizaciones al día en producción y 200 en pruebas (Límites).
Facturas recurrentes
Rentas, suscripciones e igualas: una factura que el emisor timbra solo cada mes, semana o día, a la hora que elija, sin que usted programe nada.
Pagos y notas de crédito
Registre los pagos de sus facturas PPD con complementos de pago y los descuentos o devoluciones con notas de crédito.