FISCALISTO / API / REFERENCIA
quote.rejected
El cliente rechazó una cotización en su liga; su motivo, si lo dio, viene en customer_comment. Llega a sus webhooks como POST firmado con Standard Webhooks (encabezados webhook-id, webhook-timestamp y webhook-signature).
application/json- body
Algo que pasó en su cuenta: el objeto completo como quedó. Se manda a sus webhooks firmado (Standard Webhooks).
id*stringIdentificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_).
object*stringQué tipo de objeto es («invoice», «customer»…).
type*stringQué pasó: invoice.stamped, invoice.failed, invoice.canceled, invoice.cancellation_pending, invoice.cancellation_rejected, invoice.paid, invoice.partially_paid, retention.stamped, retention.failed, retention.canceled, invoice_batch.completed, customer_data_request.completed, sat_download.completed, sat_download.failed, sat_declaration.created, sat_declaration.updated, ticket.invoiced, ticket.included_in_global, recurring_invoice.failed, quote.viewed, quote.accepted, quote.changes_requested, quote.rejected, issuer.ready, balance.low o test_clock.ready.
api_version*stringVersión de la API con que se armó el objeto.
livemode*booleantrue en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT.
created_at*stringCuándo se creó, ISO 8601 con la hora de la Ciudad de México (-06:00).
date-timedata*Lo que cambió, en data.object: el comprobante (o el lote) completo, como lo contesta su GET.
Conteste 2xx en menos de 15 segundos; si no, se reintenta durante un día.
Así llega a su webhook
{ "id": "evt_0PKhIdhYuAGwzmMQYfkc", "object": "event", "type": "quote.rejected", "api_version": "2026-10-24", "livemode": false, "created_at": "2026-10-24T10:15:42-06:00", "data": { "object": { "id": "quo_OufpKqnrvx9p3Kd8wQm2XyT5uBcW8sKdLx", "object": "quote", "livemode": false, "issuer": "iss_OufpKqnrvx9p", "number": "COT-12", "version": 1, "status": "rejected", "url": "https://fiscalisto.com/cotizacion/7Hq2mZr1XyT5uBcW8sKdLx0VeNOufpKq", "customer": { "tax_id": "ICV060329BY0", "name": "INMOBILIARIA CVA", "email": "compras@cva.example", "catalog_id": "cus_OufpKqnrvx9p42" }, "currency": "MXN", "items": [ { "description": "Desarrollo del sitio web", "product_key": "81112103", "quantity": 1, "unit_key": "E48", "unit_price": 45000 } ], "total": 52200, "valid_until": "2026-11-09", "terms": "50% de anticipo, entrega en 4 semanas.", "notes": null, "auto_invoice": true, "customer_comment": "Elegimos otro proveedor.", "sent_at": "2026-10-25T10:12:00-06:00", "viewed_at": "2026-10-24T10:15:42-06:00", "decided_at": "2026-10-24T10:15:42-06:00", "decided_by": "customer", "invoice": null, "created_at": "2026-10-25T10:05:00-06:00" } }}quote.changes_requested Webhook
El cliente pidió cambios en la liga de una cotización; lo que escribió viene en customer_comment. A lo más una vez cada 10 minutos. Llega a sus webhooks como POST firmado con Standard Webhooks (encabezados webhook-id, webhook-timestamp y webhook-signature).
issuer.ready Webhook
El emisor ya puede timbrar en producción: tiene su CSD y firmó el contrato con el PAC (por la API, el panel o una liga de alta). data.object es el emisor. En pruebas llega al terminar una liga de alta. Llega a sus webhooks como POST firmado con Standard Webhooks (encabezados webhook-id, webhook-timestamp y webhook-signature).