# Ver los estados financieros

`GET https://api.fiscalisto.com/v1/accounting/financial_statements`

El estado de resultados (del mes y del año hasta ese mes) y el balance general al cierre del mes, leídos de la misma balanza, así que siempre suman las mismas pólizas.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `month` | consulta | sí | El mes (AAAA-MM). |
| `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 financialStatements = await fiscalisto.accounting.financialStatements({ month: "2026-10" });
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

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

financial_statements = fiscalisto.accounting.financial_statements({"month": "2026-10"})
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

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

$financialStatements = $fiscalisto->accounting->financialStatements(['month' => '2026-10']);
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

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

var financialStatements = await fiscalisto.Accounting.FinancialStatementsAsync(new GetFinancialStatementsParams { Month = "2026-10" });
```

## 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()

	financialStatements, err := client.Accounting.FinancialStatements(ctx, &fiscalisto.GetFinancialStatementsParams{Month: "2026-10"})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", *financialStatements)
}
```

## Con el SDK de Java

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

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

var financialStatements = fiscalisto.accounting().financialStatements(new GetFinancialStatementsParams().setMonth("2026-10"));
System.out.println(financialStatements);
```

## Respuesta 200

Correcto.

Un objeto `FinancialStatements`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `object` | `"financial_statements"` | 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). |
| `income_statement` | objeto | sí | El estado de resultados del mes (month) y del año hasta ese mes (year_to_date). Cada sección suma en positivo lo que aumenta la utilidad (ingresos) y en negativo lo que la reduce (costos y gastos). |
| `income_statement.month` | objeto | sí | El estado de resultados del mes. |
| `income_statement.month.sections` | arreglo de objeto | sí | Ingresos, costos, gastos, financiamiento y otros, cada uno con su total. |
| `income_statement.month.sections[].key` | `ingresos`, `costos`, `gastos`, `financiamiento`, `otros` | sí | El archivo .key en base64 (puede traer el prefijo data:). |
| `income_statement.month.sections[].name` | string | sí | Nombre. |
| `income_statement.month.sections[].total` | number | sí | Total en la moneda del comprobante (Total). |
| `income_statement.month.sections[].groups` | arreglo de objeto | sí | Su monto por el primer nivel del código agrupador. |
| `income_statement.month.sections[].groups[].grouping_code` | string | sí | El primer nivel del código agrupador (401, 601…). |
| `income_statement.month.sections[].groups[].name` | string | sí | Nombre. |
| `income_statement.month.sections[].groups[].amount` | number | sí | Importe. |
| `income_statement.month.sections[].groups[].accounts` | arreglo de objeto | sí | Las cuentas del grupo con su monto. |
| `income_statement.month.sections[].groups[].accounts[].number` | string | sí | Número de empleado (NumEmpleado). |
| `income_statement.month.sections[].groups[].accounts[].name` | string | sí | Nombre. |
| `income_statement.month.sections[].groups[].accounts[].amount` | number | sí | Importe. |
| `income_statement.month.net_income` | number | sí | La utilidad (o pérdida, negativa) antes de impuestos del mes. |
| `income_statement.year_to_date` | objeto | sí | El estado de resultados de enero al mes. |
| `income_statement.year_to_date.sections` | arreglo de objeto | sí | Ingresos, costos, gastos, financiamiento y otros, cada uno con su total. |
| `income_statement.year_to_date.sections[].key` | `ingresos`, `costos`, `gastos`, `financiamiento`, `otros` | sí | El archivo .key en base64 (puede traer el prefijo data:). |
| `income_statement.year_to_date.sections[].name` | string | sí | Nombre. |
| `income_statement.year_to_date.sections[].total` | number | sí | Total en la moneda del comprobante (Total). |
| `income_statement.year_to_date.sections[].groups` | arreglo de objeto | sí | Su monto por el primer nivel del código agrupador. |
| `income_statement.year_to_date.sections[].groups[].grouping_code` | string | sí | El primer nivel del código agrupador (401, 601…). |
| `income_statement.year_to_date.sections[].groups[].name` | string | sí | Nombre. |
| `income_statement.year_to_date.sections[].groups[].amount` | number | sí | Importe. |
| `income_statement.year_to_date.sections[].groups[].accounts` | arreglo de objeto | sí | Las cuentas del grupo con su monto. |
| `income_statement.year_to_date.sections[].groups[].accounts[].number` | string | sí | Número de empleado (NumEmpleado). |
| `income_statement.year_to_date.sections[].groups[].accounts[].name` | string | sí | Nombre. |
| `income_statement.year_to_date.sections[].groups[].accounts[].amount` | number | sí | Importe. |
| `income_statement.year_to_date.net_income` | number | sí | La utilidad (o pérdida, negativa) antes de impuestos de enero al mes. |
| `balance_sheet` | objeto | sí | El balance general al cierre del mes, agrupado por el primer nivel del código agrupador. difference es activo menos pasivo y capital: 0 cuando los libros cuadran. |
| `balance_sheet.assets` | objeto | sí | El activo: su total y sus grupos. |
| `balance_sheet.assets.total` | number | sí | Total en la moneda del comprobante (Total). |
| `balance_sheet.assets.groups` | arreglo de objeto | sí | Su monto por el primer nivel del código agrupador. |
| `balance_sheet.assets.groups[].grouping_code` | string | sí | El primer nivel del código agrupador (401, 601…). |
| `balance_sheet.assets.groups[].name` | string | sí | Nombre. |
| `balance_sheet.assets.groups[].amount` | number | sí | Importe. |
| `balance_sheet.assets.groups[].accounts` | arreglo de objeto | sí | Las cuentas del grupo con su monto. |
| `balance_sheet.assets.groups[].accounts[].number` | string | sí | Número de empleado (NumEmpleado). |
| `balance_sheet.assets.groups[].accounts[].name` | string | sí | Nombre. |
| `balance_sheet.assets.groups[].accounts[].amount` | number | sí | Importe. |
| `balance_sheet.liabilities` | objeto | sí | El pasivo: su total y sus grupos. |
| `balance_sheet.liabilities.total` | number | sí | Total en la moneda del comprobante (Total). |
| `balance_sheet.liabilities.groups` | arreglo de objeto | sí | Su monto por el primer nivel del código agrupador. |
| `balance_sheet.liabilities.groups[].grouping_code` | string | sí | El primer nivel del código agrupador (401, 601…). |
| `balance_sheet.liabilities.groups[].name` | string | sí | Nombre. |
| `balance_sheet.liabilities.groups[].amount` | number | sí | Importe. |
| `balance_sheet.liabilities.groups[].accounts` | arreglo de objeto | sí | Las cuentas del grupo con su monto. |
| `balance_sheet.liabilities.groups[].accounts[].number` | string | sí | Número de empleado (NumEmpleado). |
| `balance_sheet.liabilities.groups[].accounts[].name` | string | sí | Nombre. |
| `balance_sheet.liabilities.groups[].accounts[].amount` | number | sí | Importe. |
| `balance_sheet.equity` | objeto | sí | El capital contable sin el resultado del ejercicio: su total y sus grupos. |
| `balance_sheet.equity.total` | number | sí | Total en la moneda del comprobante (Total). |
| `balance_sheet.equity.groups` | arreglo de objeto | sí | Su monto por el primer nivel del código agrupador. |
| `balance_sheet.equity.groups[].grouping_code` | string | sí | El primer nivel del código agrupador (401, 601…). |
| `balance_sheet.equity.groups[].name` | string | sí | Nombre. |
| `balance_sheet.equity.groups[].amount` | number | sí | Importe. |
| `balance_sheet.equity.groups[].accounts` | arreglo de objeto | sí | Las cuentas del grupo con su monto. |
| `balance_sheet.equity.groups[].accounts[].number` | string | sí | Número de empleado (NumEmpleado). |
| `balance_sheet.equity.groups[].accounts[].name` | string | sí | Nombre. |
| `balance_sheet.equity.groups[].accounts[].amount` | number | sí | Importe. |
| `balance_sheet.net_income_year_to_date` | number | sí | El resultado del ejercicio hasta el mes, parte del capital. |
| `balance_sheet.liabilities_and_equity` | number | sí | Pasivo más capital más el resultado del ejercicio. |
| `balance_sheet.difference` | number | sí | Activo menos pasivo y capital: 0 cuando los libros cuadran. |
| `journal_entries` | integer | sí | Cuántas pólizas tuvo el mes. (de -9007199254740991 a 9007199254740991) |
| `opening_balances_date` | string o null | sí | Desde qué fecha cuentan los saldos iniciales capturados en la app; null si no hay. |
| `missing_invoices` | integer | sí | Pagos que se refieren a facturas que no están en Fiscalisto y no se registraron. (de -9007199254740991 a 9007199254740991) |

```json
{
  "object": "financial_statements",
  "livemode": false,
  "issuer": "iss_OufpKqnrvx9p",
  "month": "2026-10",
  "income_statement": {
    "month": {
      "sections": [
        {
          "key": "ingresos",
          "name": "Ingresos",
          "total": 5000,
          "groups": [
            {
              "grouping_code": "401",
              "name": "Ingresos",
              "amount": 5000,
              "accounts": [
                {
                  "number": "401-01",
                  "name": "Ventas y/o servicios gravados a la tasa general",
                  "amount": 5000
                }
              ]
            }
          ]
        },
        {
          "key": "costos",
          "name": "Costo de ventas",
          "total": 0,
          "groups": []
        },
        {
          "key": "gastos",
          "name": "Gastos de operación",
          "total": 0,
          "groups": []
        },
        {
          "key": "financiamiento",
          "name": "Resultado integral de financiamiento",
          "total": 0,
          "groups": []
        },
        {
          "key": "otros",
          "name": "Otros ingresos y gastos",
          "total": 0,
          "groups": []
        }
      ],
      "net_income": 5000
    },
    "year_to_date": {
      "sections": [
        {
          "key": "ingresos",
          "name": "Ingresos",
          "total": 5000,
          "groups": [
            {
              "grouping_code": "401",
              "name": "Ingresos",
              "amount": 5000,
              "accounts": [
                {
                  "number": "401-01",
                  "name": "Ventas y/o servicios gravados a la tasa general",
                  "amount": 5000
                }
              ]
            }
          ]
        },
        {
          "key": "costos",
          "name": "Costo de ventas",
          "total": 0,
          "groups": []
        },
        {
          "key": "gastos",
          "name": "Gastos de operación",
          "total": 0,
          "groups": []
        },
        {
          "key": "financiamiento",
          "name": "Resultado integral de financiamiento",
          "total": 0,
          "groups": []
        },
        {
          "key": "otros",
          "name": "Otros ingresos y gastos",
          "total": 0,
          "groups": []
        }
      ],
      "net_income": 5000
    }
  },
  "balance_sheet": {
    "assets": {
      "total": 5800,
      "groups": [
        {
          "grouping_code": "105",
          "name": "Clientes",
          "amount": 5800,
          "accounts": [
            {
              "number": "105-01",
              "name": "Clientes nacionales",
              "amount": 5800
            }
          ]
        }
      ]
    },
    "liabilities": {
      "total": 800,
      "groups": [
        {
          "grouping_code": "208",
          "name": "IVA trasladado cobrado",
          "amount": 800,
          "accounts": [
            {
              "number": "208-01",
              "name": "IVA trasladado cobrado",
              "amount": 800
            }
          ]
        }
      ]
    },
    "equity": {
      "total": 0,
      "groups": []
    },
    "net_income_year_to_date": 5000,
    "liabilities_and_equity": 5800,
    "difference": 0
  },
  "journal_entries": 1,
  "opening_balances_date": null,
  "missing_invoices": 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.
