Ir al contenido

FISCALISTO / API

Complementos

Carta Porte, comercio exterior, impuestos locales, instituciones educativas y los demás complementos del CFDI, como un campo más de la factura.

Un complemento agrega al CFDI la información que el SAT pide para ciertas operaciones. En la API cada uno es un campo de POST /v1/invoices, de la factura o de cada concepto, y Fiscalisto lo revisa con las mismas reglas que la app antes de timbrar.

ComplementoCampoPara qué
Carta Porte 3.1carta_porteTraslado de mercancías por carretera, mar, aire o tren: origen, destinos, mercancías, vehículo y operadores. Va en un traslado ("type": "T") o en una factura de flete.
Comercio exterior 2.0comercio_exteriorExportación definitiva de mercancías, con "export": "02".
Impuestos localeslocal_taxesImpuestos estatales trasladados o retenidos, como el ISH de hospedaje.
Instituciones educativasitems[].ieduColegiaturas: alumno, CURP, nivel y RVOE, para que los padres las deduzcan.
A cuenta de tercerositems[].third_partyUn concepto que se cobra por cuenta de otro contribuyente.
Vehículo usadoitems[].used_vehicleVenta de un auto usado por una persona física.
DonatariasdonationRecibos de donativos de una donataria autorizada.
INEineOperaciones con partidos políticos y candidatos.
Leyendas fiscalesleyendasTextos que una disposición fiscal pide incluir.
Addendaaddenda (y items[].addenda)Lo que piden algunos receptores, como Walmart o Soriana.

Las facturas también llevan sin complemento la cuenta predial (items[].predial) en un arrendamiento y los pedimentos (items[].pedimentos) de la mercancía importada.

La referencia de POST /v1/invoices describe cada campo de cada complemento, con su nombre en el XML del SAT.

Ejemplo: hospedaje con ISH

curl https://api.fiscalisto.com/v1/invoices \
  -H "Authorization: Bearer $FISCALISTO_API_KEY" \
  -H "Idempotency-Key: reserva-77812" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": { "tax_id": "ICV060329BY0", "legal_name": "INMOBILIARIA CVA", "tax_system": "601", "zip": "33826" },
    "payment_form": "04",
    "items": [{ "description": "Hospedaje, 2 noches", "product_key": "90111800", "unit_name": "Noche", "quantity": 2, "unit_price": 1500 }],
    "local_taxes": [{ "retention": false, "name": "ISH", "rate": 3, "amount": 90 }]
  }'

rate va en por ciento y amount es el importe del impuesto local; Fiscalisto lo suma (o, si es una retención, lo resta) al total.

Si el producto del catálogo ya lleva el impuesto (local_taxes en POST /v1/products) y la factura no manda local_taxes, Fiscalisto lo agrega solo, calculado sobre los conceptos de ese producto: en una factura con hospedaje y cena, el ISH va sobre el hospedaje. Si la factura manda local_taxes, se usan los suyos tal cual. Al público en general solo se le trasladan.

Ejemplo: a cuenta de terceros

curl https://api.fiscalisto.com/v1/invoices \
  -H "Authorization: Bearer $FISCALISTO_API_KEY" \
  -H "Idempotency-Key: comision-3391" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": { "tax_id": "ICV060329BY0", "legal_name": "INMOBILIARIA CVA", "tax_system": "601", "zip": "33826" },
    "payment_form": "03",
    "items": [{
      "description": "Consultoría",
      "product_key": "80101500",
      "unit_price": 1000,
      "third_party": { "tax_id": "CACX7605101P8", "name": "XOCHILT CASAS CHAVEZ", "tax_system": "612", "zip": "36257" }
    }]
  }'