Saltar al contenido

Referencia de la API

Referencia completa de todos los endpoints de la API de Facturación. Todas las solicitudes utilizan HTTP Basic Auth con tu llave de API.

Base URL: https://api.facturacion.srs-ngr.com

Facturas

El recurso principal. Crea, timbra, cancela y descarga facturas.

Crear una factura

POST /v1/facturas

Crea y opcionalmente timbra una factura en una sola llamada.

Cuerpo de la solicitud:

CampoTipoRequeridoDescripción
organizacionstringSíID de organización (org_...)
tipostringSí"ingreso" o "egreso"
clientestringSíRFC del cliente o ID (cli_...)
conceptosarraySíPartidas (ver abajo)
forma_pagostringCondicionalCódigo de forma de pago del SAT ("01", "03", etc.)
metodo_pagostringCondicional"PUE" o "PPD"
monedastringNoPor defecto: "MXN"
tipo_cambiostringNoRequerido si moneda no es MXN
lugar_expedicionstringNoPor defecto: codigo_postal de la organización
exportacionstringNoPor defecto: "01"
seriestringNoSerie de la factura
foliostringNoNúmero de factura
condiciones_pagostringNoCondiciones de pago
relacionesarrayNoCFDIs relacionados
auto_timbrarboolNoPor defecto: true

Objeto Concepto:

CampoTipoRequeridoDescripción
productostringNoID de producto — hereda valores por defecto
cantidadstringSíCantidad
clave_prod_servstringCondicionalCódigo del SAT (requerido si no hay producto)
clave_unidadstringCondicionalCódigo de unidad del SAT
descripcionstringCondicionalDescripción
valor_unitariostringCondicionalPrecio unitario
descuentostringNoMonto de descuento
objeto_impstringCondicional"01", "02", "03"
impuestosobjectNoDesglose de impuestos
curl -X POST https://api.facturacion.srs-ngr.com/v1/facturas \
  -u sk_test_xxx: \
  -H "Content-Type: application/json" \
  -d '{
    "organizacion": "org_1a2b3c4d",
    "tipo": "ingreso",
    "cliente": "XAXX010101000",
    "forma_pago": "03",
    "metodo_pago": "PUE",
    "conceptos": [
      {"producto": "prod_xyz789", "cantidad": "2"}
    ]
  }'

Listar facturas

GET /v1/facturas
ParámetroTipoDescripción
organizacionstringFiltrar por organización
clientestringFiltrar por cliente
estadostringFiltrar por estado
tipostringFiltrar por tipo
paginacion.limiteintTamaño de página (por defecto: 20)
paginacion.cursor_iniciostringCursor de la página anterior

Obtener una factura

GET /v1/facturas/{id}

Devuelve la factura completa con conceptos, impuestos y relaciones anidados.

Timbrar un borrador

POST /v1/facturas/{id}/timbrar

Envía un borrador de factura al PAC para timbrado. Solo funciona cuando estado es "borrador".

Cancelar una factura

POST /v1/facturas/{id}/cancelar
CampoTipoRequeridoDescripción
motivostringSí"01", "02", "03" o "04"
uuid_sustitucionstringCondicionalRequerido cuando motivo es "01"

Descargar XML

GET /v1/facturas/{id}/xml

Devuelve Content-Type: application/xml.

Descargar PDF

GET /v1/facturas/{id}/pdf

Devuelve Content-Type: application/pdf.


Clientes

Administra los datos fiscales de tus clientes.

Crear un cliente

POST /v1/clientes
CampoTipoRequeridoDescripción
organizacionstringSíID de organización
rfcstringSí12 o 13 caracteres
nombrestringSíRazón social (debe coincidir con el SAT)
regimen_fiscalstringSíCódigo de régimen del SAT
domicilio_fiscalstringSíCódigo postal (debe coincidir con el SAT)
uso_cfdistringSíDebe ser compatible con regimen_fiscal
correostringNoDirección de correo electrónico

Listar clientes

GET /v1/clientes
ParámetroDescripción
organizacionFiltrar por organización
qBuscar por RFC o nombre

Obtener un cliente

GET /v1/clientes/{id}

Actualizar un cliente

PATCH /v1/clientes/{id}

Eliminar un cliente

DELETE /v1/clientes/{id}

Productos

Catálogo de productos con mapeo de códigos del SAT e impuestos por defecto.

Crear un producto

POST /v1/productos
CampoTipoRequeridoDescripción
organizacionstringSíID de organización
descripcionstringSíDescripción del producto
valor_unitariostringSíPrecio unitario (6 decimales)
clave_prod_servstringSíCódigo de producto del SAT
clave_unidadstringSíCódigo de unidad del SAT
unidadstringNoNombre de la unidad (texto libre)
no_identificacionstringNoSKU interno
objeto_impstringSí"01", "02", "03"
impuestos_defaultobjectNoImpuestos por defecto aplicados en facturas

Listar / Buscar / Obtener / Actualizar / Eliminar

Mismos patrones que Clientes. Busca con el parámetro q en descripcion y no_identificacion.


Organizaciones

Administra tus entidades de negocio (soporte multi-RFC).

Crear una organización

POST /v1/organizaciones
CampoTipoRequerido
rfcstringSí
nombrestringSí
regimen_fiscalstringSí
codigo_postalstringSí
color_acentostringNo

Listar / Obtener / Actualizar

CRUD estándar con paginación.


Certificados

Carga y administra Certificados de Sello Digital (CSD).

Cargar un certificado

POST /v1/certificados
CampoTipoRequeridoDescripción
organizacionstringSíID o RFC de la organización
cerbytesSíArchivo de certificado (.cer)
llavebytesSíArchivo de llave privada (.key)
contrasenastringSíContraseña de la llave privada

Acepta multipart/form-data (archivos vía curl -F) o JSON (archivos en base64).

Listar / Obtener / Activar-Desactivar

CRUD estándar. El endpoint PATCH alterna la bandera activo.


Pagos

Registra pagos contra facturas PPD. Genera Complemento de Pagos 2.0.

Crear un pago

POST /v1/pagos
CampoTipoRequeridoDescripción
organizacionstringSíID de organización
fecha_pagotimestampSíFecha de pago
forma_pagostringSíCódigo de forma de pago del SAT
monedastringNoPor defecto: "MXN"
montostringSíMonto total del pago
facturas_pagadasarraySíFacturas que se están pagando

Elemento de facturas_pagadas:

CampoTipoRequerido
facturastringSí
imp_pagadostringSí

Listar / Obtener

Filtra por organizacion y opcionalmente por factura.


Catálogos SAT

Busca en los catálogos de referencia del SAT de solo lectura. No se requiere autenticación para los endpoints de catálogos.

EndpointDescripciónBuscable
GET /v1/catalogos/claves_prod_serv?q=...Códigos de productos/servicios (55K+)Sí
GET /v1/catalogos/claves_unidad?q=...Códigos de unidadSí
GET /v1/catalogos/codigos_postales?q=...Códigos postalesSí
GET /v1/catalogos/regimenes_fiscalesRegímenes fiscalesNo
GET /v1/catalogos/usos_cfdiUsos de CFDINo
GET /v1/catalogos/formas_pagoFormas de pagoNo
GET /v1/catalogos/metodos_pagoMétodos de pagoNo
GET /v1/catalogos/monedasMonedasNo
GET /v1/catalogos/exportacionesTipos de exportaciónNo
GET /v1/catalogos/objetos_impObjetos de impuestoNo
GET /v1/catalogos/tipos_relacionTipos de relaciónNo

Los catálogos buscables aceptan los parámetros q (consulta) y limite.


Webhooks

Registra URLs para recibir notificaciones de eventos.

Crear / Listar / Obtener / Actualizar / Eliminar

POST /v1/webhooks · GET /v1/webhooks · GET /v1/webhooks/{id} · PATCH /v1/webhooks/{id} · DELETE /v1/webhooks/{id}

Consulta la guía de Webhooks para ver los tipos de eventos y la verificación de firmas.


Eventos

Registro inmutable de todos los eventos en tu cuenta.

Listar eventos

GET /v1/eventos
ParámetroDescripción
tipoFiltrar por tipo de evento (ej., "factura.timbrada")

Obtener un evento

GET /v1/eventos/{id}

Cuenta & Llaves API

Cuenta

POST /v1/cuenta · GET /v1/cuenta · PATCH /v1/cuenta

Llaves de API

POST /v1/llaves_api · GET /v1/llaves_api · DELETE /v1/llaves_api/{id}

Consulta la guía de Autenticación para más detalles.


Patrones comunes

Paginación

Todos los endpoints de listado usan paginación basada en cursor:

{
  "datos": [...],
  "paginacion": {
    "hay_mas": true,
    "siguiente_cursor": "abc123..."
  }
}

Pasa siguiente_cursor como paginacion.cursor_inicio en la siguiente solicitud.

Idempotencia

Incluye un encabezado Clave-Idempotencia en cualquier solicitud POST para reintentar de forma segura:

curl -X POST https://api.facturacion.srs-ngr.com/v1/facturas \
  -H "Clave-Idempotencia: pedido_12345" \
  -u sk_test_xxx: \
  -d '{...}'

Misma clave + mismo cuerpo = misma respuesta. Las claves expiran después de 24 horas.