Ir al contenido
Cotizaciones

FISCALISTO / API / REFERENCIA

Cambiar una cotización

POST
/v1/quotes/{id}

Solo lo que mande cambia. Un borrador cambia ahí mismo; una que ya se envió se vuelve una versión nueva en borrador (mismo número, version + 1) que el cliente ve al mandarla; mientras, su liga muestra la anterior. Una aceptada, rechazada o facturada ya no cambia.

Autorización

bearerAuth
headerAutorizaciónBearer <llave>

Su llave secreta: fk_test_… en pruebas, fk_live_… en producción. Desarrolladores › Llaves.

Parámetros de la ruta

id*string

El id del objeto.

Encabezados

Idempotency-Key?string

Opcional (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).

Longitud1 <= length <= 255

Cuerpo de la solicitud

application/json
  1. body
customer?||

Un cliente de su catálogo (cus_…), uno con sus datos fiscales (como en POST /v1/invoices: se agrega a sus clientes) o solo name y email si aún no los tiene.

items?array<>

Los conceptos, como en POST /v1/invoices.

Elementos1 <= items <= 200
currency?string

Moneda, clave ISO 4217 de c_Moneda (MXN, USD, EUR…). Por omisión MXN.

Longitud3 <= length <= 3
exchange_rate?number

Tipo de cambio a pesos (TipoCambio). Obligatorio si la moneda no es MXN; use el del DOF del día anterior.

Rango0 < value <= 1000000
payment_form?string

Forma de pago (FormaPago), clave de c_FormaPago: 01 efectivo, 03 transferencia, 04 tarjeta de crédito, 28 débito, 99 por definir… Obligatoria con PUE; con PPD es 99.

Patrón^\d{2}$
payment_method?string

Método de pago (MetodoPago): PUE (una sola exhibición, por omisión) o PPD (en parcialidades o diferido, se cobra con complementos de pago).

Uno de"PUE""PPD"
use?string

Uso del CFDI (UsoCFDI), clave de c_UsoCFDI. Por omisión G03, o S01 con régimen 616.

Patrón^[A-Z]{1,2}\d{2}$
notes?string

Observaciones que aparecen en el PDF (no van en el XML).

Longitudlength <= 1000
valid_until?string

Hasta cuándo es válida (AAAA-MM-DD, hasta un año). Por omisión, en 15 días.

Patrón^\d{4}-\d{2}-\d{2}$
terms?string

Condiciones: tiempo de entrega, anticipo, garantía…

Longitudlength <= 2000

Cuerpo de la respuesta

Correcto.

application/json
  1. response

Una cotización: su cliente la ve en una liga, la acepta, pide cambios o la rechaza, y se factura.

id*string

Identificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_).

livemode*boolean

true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT.

object*string

Qué tipo de objeto es («invoice», «customer»…).

issuer*string

El emisor (iss_…).

number*string

Su serie y folio, como lo ve el cliente (COT-12).

version*integer

Cambiar una ya enviada hace una versión nueva con el mismo número; el id contesta siempre la última.

Rango-9007199254740991 <= value <= 9007199254740991
status*string

draft, sent, viewed (el cliente abrió la liga), accepted, rejected, expired (pasó valid_until) o invoiced.

Uno de"draft""sent""viewed""accepted""rejected""expired""invoiced"
url*|

La liga donde el cliente la ve, descarga su PDF, la acepta, pide cambios o la rechaza; null mientras sea borrador.

customer*

A quién va: tax_id null si aún no tiene sus datos fiscales; catalog_id es su cliente (cus_…) en su catálogo, o null.

currency*string

La moneda.

items*array<>

Los conceptos, como los de una factura.

total*|

El total con impuestos.

valid_until*string

Su último día de validez (AAAA-MM-DD).

terms*|

Las condiciones impresas: entrega, anticipo, garantía…

notes*|

Las notas, como las de una factura.

auto_invoice*boolean

Si al aceptarla se timbra la factura sola.

customer_comment*|

Lo que escribió el cliente al pedir cambios o al rechazarla, o null.

sent_at*|

Cuándo se envió.

viewed_at*|

Cuándo el cliente abrió la liga por primera vez.

decided_at*|

Cuándo se aceptó o rechazó.

decided_by*|

customer (en su liga) o user (usted, con POST /v1/quotes/{id}/accept o desde la app).

invoice*|

La factura (inv_…) que se timbró de ella, o null.

created_at*|

Cuándo se creó.

curl -X POST 'https://api.fiscalisto.com/v1/quotes/string' \  -H 'Authorization: Bearer fk_test_…' \  -H 'Idempotency-Key: 8f14e45f-ceea-467a-9575-6a1b0e5f3c21' \  -H 'Content-Type: application/json' \  -d '{  "valid_until": "2026-11-30"}'
{  "id": "quo_OufpKqnrvx9p3Kd8wQm2XyT5uBcW8sKdLx",  "object": "quote",  "livemode": false,  "issuer": "iss_OufpKqnrvx9p",  "number": "COT-12",  "version": 1,  "status": "sent",  "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": null,  "sent_at": "2026-10-25T10:12:00-06:00",  "viewed_at": null,  "decided_at": null,  "decided_by": null,  "invoice": null,  "created_at": "2026-10-25T10:05:00-06:00"}