# Ver los CFDI de una cifra del cruce

`GET https://api.fiscalisto.com/v1/accounting/cross_checks/cfdi`

Los CFDI que forman lo facturado (invoiced) de una cifra del cruce de un mes, con los mismos cálculos de Impuestos: cada factura PUE o nota de crédito en su mes y cada factura PPD por lo que se pagó en el mes, con lo que aporta. La suma de cfdi más adjustment es invoiced. Sirve para ver por qué una cifra differs. Gratis: no consulta al SAT.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `month` | consulta | sí | El mes (AAAA-MM), cuya declaración ya venció. |
| `key` | consulta | sí | La cifra: vat_charged, vat_creditable, vat_withheld, isr_income, isr_withheld_salaries, isr_withheld_suppliers o vat_withheld_suppliers. |
| `issuer` | consulta |  | El emisor (iss_…). Puede omitirse si la llave o la cuenta tienen uno solo. |

## Con el SDK de TypeScript

```ts
import { Fiscalisto } from "fiscalisto";

// La llave viene de FISCALISTO_API_KEY.
const fiscalisto = new Fiscalisto();

const crossCheckCfdi = await fiscalisto.accounting.crossCheckCfdi({ month: "2026-09", key: "vat_creditable" });
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

# La llave viene de FISCALISTO_API_KEY.
fiscalisto = Fiscalisto()

cross_check_cfdi = fiscalisto.accounting.cross_check_cfdi({"month": "2026-09", "key": "vat_creditable"})
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
$fiscalisto = new Fiscalisto();

$crossCheckCfdi = $fiscalisto->accounting->crossCheckCfdi([
    'month' => '2026-09',
    'key' => 'vat_creditable',
]);
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var crossCheckCfdi = await fiscalisto.Accounting.CrossCheckCfdiAsync(new GetCrossCheckCfdiParams
{
    Month = "2026-09",
    Key = "vat_creditable",
});
```

## Con el SDK de Go

```go
package main

import (
	"context"
	"fmt"
	"log"

	fiscalisto "fiscalisto.com/go"
)

func main() {
	// La llave viene de FISCALISTO_API_KEY.
	client, err := fiscalisto.NewClient("")
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	crossCheckCFDI, err := client.Accounting.CrossCheckCFDI(ctx, &fiscalisto.GetCrossCheckCfdiParams{
		Month: "2026-09",
		Key:   "vat_creditable",
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", *crossCheckCFDI)
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;
import com.fiscalisto.model.GetCrossCheckCfdiParams;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var crossCheckCfdi = fiscalisto.accounting().crossCheckCfdi(new GetCrossCheckCfdiParams()
        .setMonth("2026-09")
        .setKey("vat_creditable"));
System.out.println(crossCheckCfdi);
```

## Respuesta 200

Correcto.

Un objeto `CrossCheckCfdi`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `object` | `"cross_check_cfdi"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `livemode` | boolean | sí | true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT. |
| `issuer` | string | sí | El emisor. |
| `month` | string | sí | El mes (AAAA-MM). |
| `key` | `vat_charged`, `vat_creditable`, `vat_withheld`, `isr_income`, `isr_withheld_salaries`, `isr_withheld_suppliers`, `vat_withheld_suppliers` | sí | La cifra: vat_charged (IVA trasladado), vat_creditable (IVA acreditable), vat_withheld (IVA que le retuvieron), isr_income (ingresos para ISR), isr_withheld_salaries (ISR retenido en sus recibos de nómina), isr_withheld_suppliers o vat_withheld_suppliers (ISR o IVA que retuvo a proveedores). |
| `status` | `matches`, `differs`, `not_filed`, `unreadable` | sí | El cruce de esa cifra, como en GET /v1/accounting/cross_checks: matches, differs, not_filed o unreadable. |
| `declared` | number o null | sí | Lo declarado, en pesos; null si no hay declaración o no se pudo leer. |
| `declared_without_cfdi` | number | sí | De declared, lo que la propia declaración dice que no salió de facturas (ingresos nominales adicionales en isr_income, IVA al 16% sobre la precarga del SAT en vat_charged); 0 si no hay. |
| `invoiced` | number | sí | Lo que dicen los CFDI del mes: la suma de cfdi más adjustment. |
| `difference` | number o null | sí | declared menos declared_without_cfdi menos invoiced; null si declared es null. |
| `operation_number` | string o null | sí | El número de operación de la declaración de donde salió la cifra. |
| `cfdi` | arreglo de objeto | sí | Cada CFDI que suma en el mes, de mayor a menor: los PUE y las notas de crédito en su mes, las facturas PPD por lo que se pagó en el mes. |
| `cfdi[].uuid` | string o null | sí | El folio fiscal (UUID) del CFDI; el de la factura PPD en un pago. |
| `cfdi[].type` | `invoice`, `credit_note`, `payment`, `withholding_certificate` | sí | invoice (factura de ingreso, PUE), credit_note (nota de crédito: resta) o payment (lo pagado en el mes de una factura PPD). |
| `cfdi[].date` | string o null | sí | La fecha del CFDI, o la del pago (AAAA-MM-DD). |
| `cfdi[].tax_id` | string o null | sí | El RFC de la contraparte: el cliente en lo emitido, el proveedor en lo recibido. |
| `cfdi[].name` | string o null | sí | El nombre de la contraparte, como viene en el CFDI. |
| `cfdi[].amount` | number | sí | Lo que aporta a la cifra, en pesos; negativo en una nota de crédito. |
| `adjustment` | number | sí | Lo que Impuestos agrega sobre los CFDI: en vat_creditable, la proporción de gastos comunes, el IVA retenido enterado del mes anterior y las importaciones; 0 en las demás. |

```json
{
  "object": "cross_check_cfdi",
  "livemode": false,
  "issuer": "iss_OufpKqnrvx9p",
  "month": "2026-09",
  "key": "vat_creditable",
  "status": "differs",
  "declared": 0,
  "declared_without_cfdi": 0,
  "invoiced": 152.98,
  "difference": -152.98,
  "operation_number": "261150269496",
  "cfdi": [
    {
      "uuid": "5E2D6C1A-9B3F-4C7E-8A21-3F6B9D0C4E57",
      "type": "invoice",
      "date": "2026-09-12",
      "tax_id": "CNM980114PI2",
      "name": "CADENA COMERCIAL OXXO",
      "amount": 96.55
    },
    {
      "uuid": "A1F4C2B9-7D3E-4E8A-9C05-1B2D3E4F5A6B",
      "type": "payment",
      "date": "2026-09-25",
      "tax_id": "TME840315KT6",
      "name": "TELEFONOS DE MEXICO",
      "amount": 56.43
    }
  ],
  "adjustment": 0
}
```

## Errores

Puede responder 400, 401, 403, 404, 429, 500 con el cuerpo de error de siempre; cada código está en https://fiscalisto.com/docs/api/errores.md.
