FISCALISTO / API / REFERENCIA
invoice.partially_paid
Llegó un pago por una parte de una factura PPD (un complemento de pago o una nota de crédito). data.object es la factura, con lo que falta en amount_due. 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": "invoice.partially_paid", "api_version": "2026-10-24", "livemode": false, "created_at": "2026-10-24T10:15:42-06:00", "data": { "object": { "id": "inv_OufpKqnrvx9p0Nfbydl9jG4UNGeTYcvdrg", "object": "invoice", "livemode": false, "issuer": "iss_OufpKqnrvx9p", "branch": null, "type": "I", "status": "valid", "uuid": "5F1E8C2A-3B7D-4C9E-A1B2-C3D4E5F60718", "series": null, "folio": "1", "date": "2026-10-24T10:15:42", "customer": { "tax_id": "ICV060329BY0", "legal_name": "INMOBILIARIA CVA", "tax_system": "601", "zip": "33826" }, "use": "I04", "payment_form": "99", "payment_method": "PPD", "currency": "MXN", "exchange_rate": null, "items": [ { "description": "Mensualidad", "product_key": "86121700", "unit_key": "E48", "unit_name": "Unidad de servicio", "sku": "MEN-1", "quantity": 2, "unit_price": 2500, "taxability": "02", "iva": "0.16" } ], "subtotal": 5000, "discount": 0, "taxes": { "iva": 800, "ieps": 0, "iva_withheld": 0, "isr_withheld": 0, "local_transferred": 0, "local_withheld": 0 }, "total": 5800, "payment_status": "partial", "amount_due": 2900, "amount_paid": 2900, "related": null, "cancellation": null, "email": null, "error": null, "recurring_invoice": null, "created_at": "2026-10-24T10:15:42-06:00", "metadata": {} } }}invoice.paid Webhook
Una factura de ingreso quedó pagada: su último complemento de pago, una nota de crédito, un depósito conciliado o POST /v1/invoices/{id}/mark_paid. data.object es la factura, con payment_status paid y amount_due 0. Llega a sus webhooks como POST firmado con Standard Webhooks (encabezados webhook-id, webhook-timestamp y webhook-signature).
retention.stamped Webhook
Se timbró una constancia de retenciones. data.object es la constancia. Llega a sus webhooks como POST firmado con Standard Webhooks (encabezados webhook-id, webhook-timestamp y webhook-signature).