FISCALISTO / API
Inventario
Lleve existencias de sus productos: cada factura saca lo que vende, y usted ve lo que hay en cada almacén, el kárdex y sus ajustes.
Un producto con track_stock: true lleva existencias. Cada factura que lo vende (con su product, o con su SKU o código de barras como NoIdentificacion) saca lo que vende del almacén de su sucursal en el momento en que se timbra, y una factura cancelada lo regresa. Es el mismo Inventario de la app: lo que haga ahí (compras, traspasos, conteos) se ve aquí, y al revés.
Almacenes
El emisor tiene un almacén por lugar desde donde factura: el de la Matriz y uno por cada sucursal, que se crean solos.
curl https://api.fiscalisto.com/v1/warehouses \
-H "Authorization: Bearer $FISCALISTO_API_KEY"Una factura vende del almacén de su sucursal (branch), o del de la Matriz sin ella. Para que salga de otro, mande warehouse (whs_…) en la factura.
Las existencias iniciales
Marque el producto con track_stock: true (al crearlo o con POST /v1/products/{id}) y meta lo que tiene con un ajuste:
curl https://api.fiscalisto.com/v1/stock_adjustments \
-H "Authorization: Bearer $FISCALISTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "initial",
"note": "Inventario de apertura",
"lines": [{ "product": "prd_OufpKqnrvx9p2", "quantity": 50, "unit_cost": 90 }]
}'Sin warehouse va al almacén de la Matriz. Una cantidad positiva entra y una negativa sale; las entradas valen su unit_cost (pesos sin IVA, o el costo promedio de hoy sin él) y las salidas el costo del emisor (promedio o PEPS, el que eligió en la app). El motivo (reason) es initial, surplus, shrinkage (merma), theft, damage, expiration, internal_use, gift, count u other. Un producto con lotes o números de serie pide lot en cada línea.
Si el emisor eligió en la app no vender sin existencias, una factura que pide más de lo que hay se rechaza antes de timbrarse, y el mensaje dice de qué producto. Lo que Inventario no puede hacer en un ajuste (un lote que no es de ese producto, otro ajuste del mismo almacén en ese momento) contesta inventory_refused.
Lo que hay
curl https://api.fiscalisto.com/v1/products/prd_OufpKqnrvx9p2/stock \
-H "Authorization: Bearer $FISCALISTO_API_KEY"Una fila por almacén: on_hand (lo que hay), reserved (lo apartado por cotizaciones aceptadas), available (lo que se puede vender), value y average_cost. GET /v1/warehouses/{id}/stock da lo mismo por producto dentro de un almacén, de 100 en 100.
El kárdex
GET /v1/stock_movements lista cada entrada y salida, la más reciente primero: type dice qué fue (sale, purchase, adjustment, transfer_out, reversal…) y source qué la causó (el UUID de la factura, el adj_… del ajuste). Filtre por product, warehouse, type y por día con date_gte y date_lte, en hora de la Ciudad de México: una venta a las 11:30 pm del 31 es del 31.
Sucursales
Facture desde otros lugares además del domicilio fiscal del emisor: cada sucursal con su código postal, su dirección en el PDF y sus series.
Datos fiscales del cliente
Revise el RFC, nombre, régimen, código postal y uso del CFDI de un cliente antes de timbrar, o mándele una liga para que él mismo los dé con su constancia.