FISCALISTO / API / REFERENCIA
Ajustar existencias
Mete o saca existencias de un almacén con su motivo: el inventario inicial, una merma, un robo, un sobrante. Las entradas valen su unit_cost (o el costo promedio), las salidas el costo del emisor (promedio o PEPS). Los productos deben llevar track_stock: true. Se aplica al momento (status applied).
bearerAuthAutorizaciónBearer <llave>Su llave secreta: fk_test_… en pruebas, fk_live_… en producción. Desarrolladores › Llaves.
Idempotency-Key?stringOpcional (los SDK la mandan solos). Si la respuesta se pierde, repita la solicitud con el mismo valor durante 24 horas: contesta lo mismo, con idempotent-replayed: true, y no lo hace dos veces (ni crea, ni manda correos, ni cobra).
1 <= length <= 255application/json- body
issuer?stringEl emisor (iss_…). Por omisión, su único emisor.
warehouse?stringEl almacén (whs_…). Por omisión, el de la Matriz.
reason*stringPor qué: shrinkage (merma), theft (robo o extravío), damage (daño), expiration (caducidad), internal_use (uso interno), gift (muestra o regalo), initial (inventario inicial), surplus (sobrante), count (conteo físico) u other.
"shrinkage""theft""damage""expiration""internal_use""gift""initial""surplus""count""other"note?|Una nota, para el kárdex.
lines*array<>Lo que entra o sale de cada producto, hasta 500 líneas.
1 <= items <= 500Correcto.
application/json- response
Un ajuste de existencias: lo que entró o salió de un almacén por inventario inicial, merma, robo, conteo…
id*stringIdentificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_).
livemode*booleantrue en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT.
object*stringQué tipo de objeto es («invoice», «customer»…).
issuer*stringEl emisor.
warehouse*stringEl almacén (whs_…).
reason*stringEl motivo (ver POST /v1/stock_adjustments).
"shrinkage""theft""damage""expiration""internal_use""gift""initial""surplus""count""other"note*|Su nota, o null.
status*stringapplied (ya movió existencias), pending (espera aprobación en la app), rejected o reversed (se deshizo).
"applied""pending""rejected""reversed"value*numberLo que vale lo que movió, en pesos sin IVA.
lines*array<>Lo que entró o salió de cada producto.
created_at*|Cuándo se hizo.
curl -X POST 'https://api.fiscalisto.com/v1/stock_adjustments' \ -H 'Authorization: Bearer fk_test_…' \ -H 'Idempotency-Key: 8f14e45f-ceea-467a-9575-6a1b0e5f3c21' \ -H 'Content-Type: application/json' \ -d '{ "reason": "initial", "note": "Inventario de apertura", "lines": [ { "product": "prd_OufpKqnrvx9p2", "quantity": 50, "unit_cost": 90 } ]}'{ "id": "adj_OufpKqnrvx9p1", "object": "stock_adjustment", "livemode": false, "issuer": "iss_OufpKqnrvx9p", "warehouse": "whs_OufpKqnrvx9p1", "reason": "initial", "note": "Inventario de apertura", "status": "applied", "value": 4500, "lines": [ { "product": "prd_OufpKqnrvx9p2", "quantity": 50, "unit_cost": 90, "lot": null } ], "created_at": "2026-10-27T09:30:00-06:00"}