Ir al contenido

FISCALISTO / API

Cuentas por cobrar

Sepa qué facturas ya le pagaron, cuáles van en parcialidades y cuánto le debe cada cliente, y entérese de cada pago por webhook.

Cada factura de ingreso dice si ya se cobró. Fiscalisto lo lleva con lo que ya timbra: los complementos de pago, las notas de crédito y, en la app, los depósitos conciliados del banco. Usted no guarda saldos.

En cada factura

CampoQué es
payment_statuspaid, partial (pagos o notas por una parte) o unpaid. null si no es de ingreso o no está vigente.
amount_dueLo que falta por cobrar, en la moneda de la factura.
amount_paidLo cobrado: complementos de pago y notas de crédito vigentes.

Una factura PPD empieza unpaid y baja con cada complemento de pago; si se cancela un complemento, su saldo vuelve. Una PUE está pagada desde que se timbra, salvo que la timbre con "paid_later": true (el cliente le paga este mes): queda unpaid hasta que la marque pagada.

curl -X POST https://api.fiscalisto.com/v1/invoices/inv_OufpKqnrvx9p6hW1yQbT3mZr8sKdLx0VeN/mark_paid \
  -H "Authorization: Bearer $FISCALISTO_API_KEY"

POST /v1/invoices/{id}/mark_unpaid hace lo contrario con una PUE ya timbrada. Si el mes termina y una PUE sigue sin pagarse, la ley pide sustituirla por una PPD (regla 2.7.1.39 de la RMF). Una PPD no se marca: se paga con su complemento (400 invoice_not_markable).

Lo que le deben

curl https://api.fiscalisto.com/v1/receivables \
  -H "Authorization: Bearer $FISCALISTO_API_KEY"

Contesta lo que debe cada cliente, por moneda: amount_due, cuántas facturas tiene abiertas (open_invoices) y la fecha de la más antigua (oldest_invoice_date), ordenado por RFC. Con ?customer=RFC (o su id cus_…), solo ese cliente. Sus facturas: GET /v1/invoices?customer=RFC&payment_status=open (unpaid, partial, open o paid).

Cada pago, por webhook

EventoCuándo
invoice.partially_paidLlegó un pago por una parte de una factura PPD (un complemento de pago o una nota de crédito).
invoice.paidYa no debe nada: el último complemento, una nota de crédito, un depósito conciliado o mark_paid.

En los dos, data.object es la factura con su payment_status y su amount_due. Así su sistema da de alta el pago o libera el pedido sin preguntar.

En pruebas funciona igual, con los complementos y las notas que timbre con su llave fk_test_.