Configuración básica
Puedes instalar la integración de Facturama directamente desde nuestro Marketplace. Una vez instalada, podrás emitir facturas electrónicas (CFDI 4.0) válidas ante el SAT, crear complementos de pago para facturas PPD, generar notas de crédito, validar RFC y consultar catálogos del SAT.
Prerrequisitos
Antes de usar esta integración, necesitas:
- Cuenta activa en Facturama — Regístrate en facturama.mx
- Certificado de Sello Digital (CSD) — Carga tu CSD desde el dashboard de Facturama
- Perfil fiscal configurado — RFC, razón social y régimen fiscal en tu cuenta
Credenciales requeridas
| Campo | Descripción | Requerido |
|---|
| Username | Usuario de tu cuenta Facturama | Sí |
| Password | Contraseña de tu cuenta Facturama | Sí |
| URL | URL del ambiente (sandbox o producción) | Solo para testing |
La URL solo es necesaria si deseas usar el ambiente de pruebas (sandbox). Para producción, la integración usa automáticamente https://api.facturama.mx.
URLs disponibles:
| Ambiente | URL |
|---|
| Producción | https://api.facturama.mx |
| Sandbox (testing) | https://apisandbox.facturama.mx |
Funcionalidades
Crear factura electrónica (CFDI)
Crea una factura electrónica CFDI 4.0 válida ante el SAT. El IVA 16% se calcula automáticamente para productos con TaxObject: "02".
Inputs:
- Receiver (objeto) — Información del receptor:
- Name (string) — Razón social en mayúsculas (máx 300 caracteres)
- Rfc (string) — RFC del receptor (12-13 caracteres)
- CfdiUse (string) — Uso del CFDI (ej. “G03”)
- FiscalRegime (string) — Código de régimen fiscal
- TaxZipCode (string) — Código postal fiscal (5 dígitos)
- Email (opcional, string) — Email para notificación
- ExpeditionPlace (string) — Código postal del emisor (5 dígitos)
- PaymentForm (string) — Forma de pago (ej. “01”=Efectivo, “03”=Transferencia)
- PaymentMethod (enum:
PUE | PPD) — Método de pago
- Items (array de objeto) — Conceptos de la factura:
- Quantity (number) — Cantidad
- Description (string) — Descripción del producto/servicio (máx 1000 caracteres)
- UnitPrice (number) — Precio unitario sin impuesto
- ProductCode (opcional, string) — Código SAT del producto (por defecto “01010101”)
- UnitCode (opcional, string) — Código SAT de unidad (por defecto “H87”)
- Unit (opcional, string) — Descripción de unidad (por defecto “Pieza”)
- TaxObject (opcional, enum:
01 | 02 | 03 | 04) — Objeto de impuesto (por defecto “02”)
- IdentificationNumber (opcional, string) — SKU o ID interno
- Discount (opcional, number) — Monto de descuento
- CfdiType (opcional, enum:
I | E | T | N | P) — Tipo de CFDI (por defecto “I”)
- Serie (opcional, string) — Serie de la factura
- Folio (opcional, string) — Número de folio
- Currency (opcional, string) — Moneda (por defecto “MXN”)
- ExchangeRate (opcional, number) — Tipo de cambio si no es MXN
- Observations (opcional, string) — Observaciones adicionales
Ejemplo:
{
"Receiver": {
"Name": "EMPRESA EJEMPLO SA DE CV",
"Rfc": "EKU9003173C9",
"CfdiUse": "G03",
"FiscalRegime": "601",
"TaxZipCode": "06600",
"Email": "[email protected]"
},
"ExpeditionPlace": "06600",
"PaymentForm": "03",
"PaymentMethod": "PUE",
"Items": [
{
"Quantity": 2,
"Description": "Servicio de consultoría tecnológica",
"UnitPrice": 5000,
"ProductCode": "80101500",
"UnitCode": "E48",
"Unit": "Servicio",
"TaxObject": "02"
},
{
"Quantity": 1,
"Description": "Licencia de software anual",
"UnitPrice": 12000,
"TaxObject": "02"
}
],
"Serie": "A",
"Folio": "001",
"Currency": "MXN"
}
Obtener factura (CFDI)
Obtiene la información detallada de una factura específica por su ID.
Inputs:
- cfdi_id (string) — ID del CFDI obtenido al crear la factura
- type (opcional, enum:
issued | received) — Tipo de CFDI (por defecto “issued”)
Ejemplo:
{
"cfdi_id": "abc123def456",
"type": "issued"
}
Buscar facturas (CFDI)
Busca facturas usando filtros como palabra clave, estado y tipo.
Inputs:
- keyword (opcional, string) — Palabra clave de búsqueda (RFC, folio, etc.)
- status (opcional, enum:
all | active | canceled) — Filtrar por estado (por defecto “all”)
- cfdi_type (opcional, string) — Filtrar por tipo de CFDI (I, E, T, N, P)
- type (opcional, enum:
issued | received) — Buscar emitidas o recibidas (por defecto “issued”)
- page (opcional, number) — Número de página (por defecto 1)
Ejemplo:
{
"keyword": "EKU9003173C9",
"status": "active",
"cfdi_type": "I",
"page": 1
}
Cancelar factura (CFDI)
Cancela una factura ante el SAT.
Esta acción es irreversible y notifica al SAT. Asegúrate de usar el motivo correcto.
Inputs:
- cfdi_id (string) — ID del CFDI a cancelar
- motive (opcional, enum:
01 | 02 | 03 | 04) — Motivo de cancelación (por defecto “02”)
- uuid_replacement (opcional, string) — UUID de reemplazo (requerido para motivo “01”)
- type (opcional, enum:
issued | received) — Tipo de CFDI (por defecto “issued”)
Motivos de cancelación:
| Código | Descripción |
|---|
| 01 | Comprobante emitido con errores con relación |
| 02 | Comprobante emitido con errores sin relación |
| 03 | No se llevó a cabo la operación |
| 04 | Operación nominativa relacionada en factura global |
Ejemplo:
{
"cfdi_id": "abc123def456",
"motive": "02"
}
Descargar factura (CFDI)
Descarga una factura en formato PDF, XML o HTML. Retorna el contenido codificado en Base64.
Inputs:
- cfdi_id (string) — ID del CFDI a descargar
- format (opcional, enum:
pdf | xml | html) — Formato de descarga (por defecto “pdf”)
- type (opcional, enum:
issued | received) — Tipo de CFDI (por defecto “issued”)
Ejemplo:
{
"cfdi_id": "abc123def456",
"format": "pdf"
}
Enviar factura por email
Envía una factura al receptor por correo electrónico con los archivos PDF y XML adjuntos.
Inputs:
- cfdi_id (string) — ID del CFDI a enviar
- email (string) — Dirección de correo del destinatario
- subject (opcional, string) — Asunto del correo (por defecto “Factura Electrónica”)
- comments (opcional, string) — Comentarios adicionales en el cuerpo del correo
Ejemplo:
{
"cfdi_id": "abc123def456",
"email": "[email protected]",
"subject": "Factura A-001",
"comments": "Adjunto encontrará su factura correspondiente al mes de enero."
}
Crear complemento de pago
Crea un Complemento de Pago (CFDI tipo “P”) para registrar pagos de facturas emitidas con método PPD. Busca automáticamente la factura original y rellena los datos del receptor.
Este complemento es obligatorio cuando recibes un pago por una factura emitida con PaymentMethod “PPD” (Pago en Parcialidades o Diferido).
Inputs:
- search_by (enum:
uuid | folio | rfc | id) — Método para encontrar la factura original.
- search_value (string) — UUID, folio, RFC o ID interno de la factura.
- AmountPaid (number) — Monto pagado en esta transacción.
- PaymentForm (string) — Forma de pago (ej. “01”=Efectivo, “03”=Transferencia).
- PaymentDate (opcional, string) — Fecha del pago en formato ISO. Por defecto usa la fecha actual.
- PartialityNumber (opcional, number) — Número de parcialidad (por defecto 1).
- PreviousBalanceAmount (opcional, number) — Saldo antes de este pago. Por defecto usa el total de la factura.
- Currency (opcional, string) — Moneda del pago. Por defecto usa la moneda de la factura original.
- OperationNumber (opcional, string) — Número de operación bancaria.
- SourceBankRfc (opcional, string) — RFC del banco pagador.
- SourceBankAccount (opcional, string) — Cuenta bancaria del pagador.
- DestinationBankRfc (opcional, string) — RFC del banco receptor.
- DestinationBankAccount (opcional, string) — Cuenta bancaria del receptor.
Ejemplo:
{
"search_by": "folio",
"search_value": "001",
"AmountPaid": 11600,
"PaymentForm": "03",
"PartialityNumber": 1,
"OperationNumber": "REF123456"
}
Crear nota de crédito
Crea una Nota de Crédito (CFDI tipo “E”) para devoluciones, reembolsos o descuentos posteriores a la factura. Busca automáticamente la factura original y usa sus datos de receptor y pago.
Inputs:
- search_by (enum:
uuid | folio | rfc | id) — Método para encontrar la factura original.
- search_value (string) — UUID, folio, RFC o ID interno de la factura.
- Items (array de objeto) — Conceptos que se acreditan:
- Quantity (number) — Cantidad.
- Description (string) — Descripción del producto/servicio.
- UnitPrice (number) — Precio unitario sin impuesto.
- ProductCode (opcional, string) — Código SAT del producto (por defecto “01010101”).
- UnitCode (opcional, string) — Código SAT de unidad (por defecto “H87”).
- Unit (opcional, string) — Descripción de unidad (por defecto “Pieza”).
- TaxObject (opcional, enum:
01 | 02 | 03 | 04) — Objeto de impuesto (por defecto “02”).
- RelationType (opcional, enum:
01 | 03) — Tipo de relación (por defecto “01”).
- Observations (opcional, string) — Observaciones adicionales.
Tipos de relación:
| Código | Descripción |
|---|
| 01 | Nota de crédito de los documentos relacionados |
| 03 | Devolución de mercancía sobre facturas o traslados previos |
Ejemplo:
{
"search_by": "folio",
"search_value": "001",
"Items": [
{
"Quantity": 1,
"Description": "Devolución - Servicio de consultoría",
"UnitPrice": 5000,
"TaxObject": "02"
}
],
"RelationType": "01",
"Observations": "Devolución por servicio no prestado"
}
Validar RFC
Valida un RFC con el SAT para verificar si es válido y obtener la razón social registrada.
Inputs:
- rfc (string) — RFC a validar (12 caracteres para personas morales, 13 para físicas)
Ejemplo:
{
"rfc": "EKU9003173C9"
}
Listar clientes
Lista los clientes registrados en tu cuenta de Facturama con filtros de búsqueda opcionales.
Inputs:
- search (opcional, string) — Palabra clave de búsqueda (nombre, RFC, email).
- limit (opcional, number) — Cantidad de resultados (1-100, por defecto 50).
- offset (opcional, number) — Desplazamiento para paginación (por defecto 0).
Ejemplo:
{
"search": "EMPRESA",
"limit": 25
}
Obtener cliente
Busca un cliente específico por ID, RFC o nombre.
Inputs:
- search_by (enum:
id | rfc | name) — Método de búsqueda.
- search_value (string) — El ID, RFC o nombre a buscar.
Ejemplo:
{
"search_by": "rfc",
"search_value": "EKU9003173C9"
}
Crear cliente
Registra un nuevo cliente con su información fiscal para reutilizar en futuras facturas.
Inputs:
- Rfc (string) — RFC del cliente (12 caracteres para empresas, 13 para personas físicas).
- Name (string) — Razón social del cliente.
- Email (opcional, string) — Correo para notificaciones de factura.
- CfdiUse (string) — Código de uso de CFDI (ej. “G03” para gastos en general).
- FiscalRegime (string) — Código de régimen fiscal (ej. “601” para General de Ley).
- TaxZipCode (string) — Código postal fiscal (5 dígitos).
- Address (opcional, objeto) — Dirección del cliente:
- Street (opcional, string) — Calle.
- ExteriorNumber (opcional, string) — Número exterior.
- InteriorNumber (opcional, string) — Número interior.
- Neighborhood (opcional, string) — Colonia.
- ZipCode (opcional, string) — Código postal.
- Municipality (opcional, string) — Municipio.
- State (opcional, string) — Estado.
- Country (opcional, string) — País (por defecto “MEX”).
Ejemplo:
{
"Rfc": "EKU9003173C9",
"Name": "EMPRESA EJEMPLO SA DE CV",
"Email": "[email protected]",
"CfdiUse": "G03",
"FiscalRegime": "601",
"TaxZipCode": "06600"
}
Buscar códigos de producto SAT
Busca códigos de producto/servicio en el catálogo del SAT para usar en tus facturas.
Inputs:
- keyword (string) — Palabra clave de búsqueda (mínimo 2 caracteres)
Ejemplo:
{
"keyword": "consultoria"
}
Buscar códigos de unidad SAT
Busca códigos de unidad de medida en el catálogo del SAT.
Inputs:
- keyword (string) — Palabra clave de búsqueda
Ejemplo:
Códigos de unidad comunes:
| Código | Descripción |
|---|
| H87 | Pieza |
| E48 | Servicio |
| KGM | Kilogramo |
| LTR | Litro |
| MTR | Metro |
Obtiene todas las formas de pago disponibles en el catálogo del SAT.
Inputs:
- Sin parámetros requeridos
Formas de pago comunes:
| Código | Descripción |
|---|
| 01 | Efectivo |
| 02 | Cheque nominativo |
| 03 | Transferencia electrónica de fondos |
| 04 | Tarjeta de crédito |
| 28 | Tarjeta de débito |
| 99 | Por definir |
Obtener regímenes fiscales
Obtiene los regímenes fiscales disponibles en el catálogo del SAT.
Inputs:
- rfc (opcional, string) — RFC para filtrar regímenes aplicables a ese tipo de contribuyente
Regímenes fiscales comunes:
| Código | Descripción |
|---|
| 601 | General de Ley Personas Morales |
| 603 | Personas Morales con Fines no Lucrativos |
| 605 | Sueldos y Salarios |
| 606 | Arrendamiento |
| 612 | Personas Físicas con Actividades Empresariales |
| 616 | Sin obligaciones fiscales |
| 626 | Régimen Simplificado de Confianza |
Obtener usos de CFDI
Obtiene los usos de CFDI disponibles en el catálogo del SAT.
Inputs:
- keyword (opcional, string) — Palabra clave de búsqueda
Usos de CFDI comunes:
| Código | Descripción |
|---|
| G01 | Adquisición de mercancías |
| G02 | Devoluciones, descuentos o bonificaciones |
| G03 | Gastos en general |
| I01 | Construcciones |
| I02 | Mobiliario y equipo de oficina |
| P01 | Por definir |
| S01 | Sin efectos fiscales |
| CP01 | Pagos |
Obtiene la información fiscal de la cuenta autenticada (RFC, razón social, régimen fiscal y estado del CSD).
Inputs:
- Sin parámetros requeridos
Referencia de códigos
Tipos de CFDI
| Código | Descripción |
|---|
| I | Ingreso (Factura) |
| E | Egreso (Nota de crédito) |
| T | Traslado |
| N | Nómina |
| P | Pago |
Métodos de pago
| Código | Descripción |
|---|
| PUE | Pago en Una Exhibición |
| PPD | Pago en Parcialidades o Diferido |
Objeto de impuesto
| Código | Descripción |
|---|
| 01 | No objeto de impuesto |
| 02 | Sí objeto de impuesto (aplica IVA 16% automático) |
| 03 | Sí objeto, no obligado desglose |
| 04 | Sí objeto, exportación |