API — SIIPAN Facturación

🔌 API de Facturación

Integra SIIPAN con tu sistema. Emite y consulta facturas CFDI 4.0 programáticamente.

https://www.siipan-factura.com/siipan-facturas/api/

key Autenticación

API Key

Todas las peticiones requieren el header X-API-Key con tu clave de acceso. Solicita tu API Key desde el panel de administración o contacta a soporte@siipan.com.mx.

# Ejemplo de autenticación curl -H "X-API-Key: sk_siipan_tu_clave_aqui" \ https://www.siipan-factura.com/siipan-facturas/api/saldo

api Endpoints

GET /api/saldo Consultar timbres disponibles expand_more

Retorna la cantidad de timbres disponibles y usados para tu cuenta.

Respuesta

{ "error": false, "data": { "cliente": "Mi Empresa SA", "timbres_disponibles": 150, "timbres_usados": 50 } }

🧪 Probar

// Resultado aparecerá aquí
POST /api/timbrar Generar CFDI 4.0 expand_more

Genera un nuevo Comprobante Fiscal Digital por Internet (CFDI) versión 4.0.

Parámetros (JSON body)

Campo Tipo Requerido Descripción
rfc_receptor string RFC del receptor
nombre_receptor string Razón social del receptor
regimen_fiscal string Clave del régimen fiscal (ej: 601)
uso_cfdi string Clave de uso CFDI (ej: G03)
cp_receptor string Código postal del receptor
conceptos array Array de conceptos
forma_pago string No Clave forma de pago (ej: 01)
metodo_pago string No PUE o PPD

Ejemplo de petición

curl -X POST https://www.siipan-factura.com/siipan-facturas/api/timbrar \ -H "X-API-Key: sk_siipan_tu_clave" \ -H "Content-Type: application/json" \ -d '{ "rfc_receptor": "XAXX010101000", "nombre_receptor": "PUBLICO EN GENERAL", "regimen_fiscal": "616", "uso_cfdi": "S01", "cp_receptor": "64000", "forma_pago": "01", "metodo_pago": "PUE", "conceptos": [{ "descripcion": "Venta de productos", "cantidad": 1, "valor_unitario": 100.00, "clave_producto": "01010101" }] }'
GET /api/consultar/ Consultar estatus de CFDI expand_more

Consulta el estatus de un CFDI previamente emitido por su UUID.

Parámetros

Campo Tipo Requerido Descripción
uuid string (URL) UUID del CFDI a consultar

Respuesta

{ "error": false, "data": { "uuid": "ABC123...", "serie": "A", "folio": "1234", "total": 1160.00, "estatus": "vigente" } }
POST /api/cancelar Cancelar CFDI expand_more

Solicita la cancelación de un CFDI ante el SAT.

Parámetros (JSON body)

Campo Tipo Requerido Descripción
uuid string UUID del CFDI a cancelar
motivo string 01=Doc con errores, 02=N/D, 03=No se realizó, 04=Global
uuid_sustitucion string Condicional Si motivo=01, UUID del CFDI sustituto
GET /api/receptores Listar receptores expand_more

Retorna la lista de receptores (clientes fiscales) de tu cuenta.

Respuesta

{ "error": false, "total": 3, "data": [ { "rfc": "XAXX010101000", "nombre": "PUBLICO EN GENERAL", "regimen_fiscal": "616" } ] }

cloud_download Descarga Masiva SAT

⚠️ Nota Importante: Para utilizar los siguientes endpoints, el emisor correspondiente debe estar dado de alta y tener su e.Firma (FIEL) configurada correctamente desde el portal web en la sección Herramientas > Descarga Masiva.

POST /api/solicitar_descarga_masiva Solicitar extracción del SAT expand_more

Encola una solicitud de extracción masiva de CFDIs directamente en los servidores del SAT usando la FIEL del emisor.

Parámetros (JSON body)

Campo Tipo Requerido Descripción
emisor_id int ID del emisor en el sistema
fecha_inicio string Formato YYYY-MM-DD
fecha_fin string Formato YYYY-MM-DD
tipo_descarga string 'emitidos' o 'recibidos'
tipo_solicitud string 'xml' o 'metadata'

Respuesta

{ "error": false, "mensaje": "Solicitud aceptada", "solicitud_id": 105 }
GET /api/solicitudes_descarga_masiva Historial de solicitudes expand_more

Obtiene el historial y estado actual de las solicitudes de descarga enviadas al SAT.

Parámetros (Query)

Campo Tipo Requerido Descripción
emisor_id int No Filtrar por ID del emisor
estado string No Filtrar por estado ('procesando', 'descargado', 'error')

Respuesta

{ "error": false, "data": [ { "id": 105, "estado": "descargado", "fecha_inicio": "2023-01-01 00:00:00" } ] }
GET /api/descarga_masiva_zip/ Obtener ZIP de la solicitud expand_more

Retorna directamente el archivo binario ZIP con los documentos (XML o Metadata) obtenidos del SAT. Solamente funciona si el estatus de la solicitud es 'descargado'.

Parámetros

Campo Tipo Requerido Descripción
solicitud_id int (URL) El ID regresado en solicitar_descarga_masiva

code Ejemplos por Lenguaje

PHP Ejemplo en PHP expand_more
<?php // Consultar saldo de timbres $ch = curl_init('https://tu-dominio.com/siipan-facturas/api/saldo'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'X-API-Key: sk_siipan_tu_clave_aqui' ] ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); echo "Timbres: " . $response['data']['timbres_disponibles'];
JS Ejemplo en JavaScript expand_more
// Consultar saldo de timbres const resp = await fetch('https://tu-dominio.com/siipan-facturas/api/saldo', { headers: { 'X-API-Key': 'sk_siipan_tu_clave_aqui' } }); const data = await resp.json(); console.log(`Timbres: $`);

error_outline Códigos de Error

Código Significado
200 Éxito
400 Datos inválidos o faltantes
401 API Key inválida o faltante
404 Recurso no encontrado
405 Método HTTP no permitido
429 Límite diario de peticiones alcanzado