Conecta tu tienda online o tu ERP a tu cuenta de Flashfact sin dejar de usar el panel. Emites, anulas y consultas comprobantes con una key; la numeración es la misma de tu panel, así que nunca se duplica.
URL basehttps://app-api.flashfact.pe
Key y token Bearer · JSON · v1
Sin conectar
Introducción
Flashfact Conecta es para cuentas que ya usan el panel de Flashfact y quieren conectar su tienda online, su ERP o cualquier otro sistema, sin dejar de usar el panel. Creas una key en Configuración → Conecta, la cambias por un token y emites, anulas y consultas comprobantes por app-api.flashfact.pe.
Lo que emites con tu key y lo que emites en el panel comparten serie, correlativo, límite mensual y certificado: es la misma cuenta. Por eso nunca se duplica un número, aunque emitas desde los dos lados a la vez.
Cómo funciona
Creas una key en el panel (un Access Key ID y un Secret). Tu plan define cuántas puedes tener.
Tu sistema cambia la key por un token de 15 minutos y lo envía en cada petición.
Con el token emites, anulas y consultas. Lo que no sea eso —series, sucursales, tu cuenta— se sigue administrando desde el panel.
Formato de las respuestas
JSON en UTF-8. Un recurso viene en { "data": … }; un listado añade "meta": { total, page, perPage }.
Los comprobantes usan camelCase en español (numDocumentoAdquirente). Las series y las keys usan snake_case (next_correlativo).
Las fechas van en YYYY-MM-DD; las marcas de tiempo, en ISO 8601 UTC.
Primeros pasos
De tu key a tu primer comprobante aceptado por SUNAT, en cuatro pasos.
Deja lista tu cuenta en el panel
La key emite con lo que ya tienes configurado: tu certificado digital y tu usuario SOL secundario (Configuración → Credenciales SUNAT) y las series que vas a usar (Configuración → Sucursales y cajas). Las series se crean solo en el panel.
Crea tu key y guarda el Secret
En Configuración → Conecta pulsa Nueva key. Recibes el Access Key ID y el Secret; el Secret se muestra una sola vez. Si quieres, limita la key a las IPs de tu servidor. Esta pestaña solo aparece si tu plan incluye Flashfact Conecta.
Canjea la key por un token y emite una boleta
El token dura 15 minutos. Envías la serie y Flashfact asigna el correlativo: no lo mandes, se ignora.
bash
BASE="https://app-api.flashfact.pe"# 1. Canjea tu key por un token de 15 minutosTOKEN=$(curl-s-X POST "$BASE/v1/auth/api-key"\-H"Content-Type: application/json"\-d'{"access_key_id":"WISNA_...","secret":"..."}'\|sed-n's/.*"access_token":"\([^"]*\)".*/\1/p')# 2. Emite la boleta: envías la serie, Flashfact pone el correlativocurl-X POST "$BASE/v1/emission/invoices"\-H"Authorization: Bearer $TOKEN"\-H"Idempotency-Key: pedido-48213"\-H"Content-Type: application/json"\-d'{"tipoDocumento":"03","tipoOperacion":"0101","serie":"B001","fechaEmision":"2026-10-11","moneda":"PEN","tipoDocumentoAdquirente":"1","numDocumentoAdquirente":"12345678","razonSocialAdquirente":"JUAN PEREZ","totalImpuestos":18.00,"totalValorVenta":100.00,"totalPrecioVenta":118.00,"importeTotal":118.00,"baseImponibleIGV":100.00,"totalIGV":18.00,"items":[{"numeroItem":1,"unidadMedida":"NIU","cantidad":2,"descripcion":"Polo de algodón","valorUnitario":50.00,"precioUnitario":59.00,"valorVenta":100.00,"afectacionIGV":"10","igv":18.00,"totalImpuestosItem":18.00}]}'
Consulta el resultado
La respuesta trae estado: "DRAFT": el comprobante quedó en cola. Pide GET /v1/emission/invoices/{id} hasta que pase a ACCEPTED o REJECTED. Tu panel lo muestra en cuanto se emite.
Autenticación
Aquí no se firma cada request. Cambias tu Access Key ID y tu Secret por un token una vez, y con el token haces todas las llamadas durante 15 minutos.
bash
POST https://app-api.flashfact.pe/v1/auth/api-key
Content-Type: application/json
{"access_key_id":"WISNA_9f2c4a7e1b3d5c6a8e0f1a2b3c4d5e6f", "secret":"…"}
→ 200{"data":{"access_token":"eyJhbGciOi…", "expires_in":900}}
Header
Valor
Authorization
Bearer <access_token>, en cada petición menos en el canje.
Idempotency-Key
Opcional al emitir. Cualquier texto único por comprobante: con la misma clave y el mismo cuerpo recibes la respuesta original en vez de emitir otra vez.
Cómo se comporta el token
Dura 15 minutos (expires_in: 900). Renuévalo un poco antes de que venza; si recibes un 401, pide uno nuevo una vez y reintenta.
Solo sirve para esta API de comprobantes. No abre el panel ni la configuración de tu cuenta.
Revocar la key corta el acceso en la siguiente petición, aunque el token aún no haya vencido. Lo mismo si tu plan deja de incluir Flashfact Conecta.
Si la key tiene una lista de IPs, el canje solo funciona desde ellas. Tras 5 secretos incorrectos seguidos, la key se bloquea unos minutos.
Al rotar el Secret desde el panel, el anterior sigue valiendo 24 horas (para que actualices tu sistema sin cortar el servicio), o se invalida al instante si lo eliges.
Qué puedes y qué no
Una key de integración está pensada para que tu sistema venda y consulte, no para administrar tu cuenta. Si la usas en una ruta fuera de este alcance, la respuesta es 403 FORBIDDEN.
Lo que sí puede hacer
Acción
Detalle
Emitir
Facturas, boletas y notas de crédito y débito (todas por POST /v1/emission/invoices, según tipoDocumento); retenciones, percepciones y guías de remisión, si tu plan las incluye.
Anular
Dar de baja un comprobante emitido (POST …/void).
Reintentar y reenviar
Reintentar el envío a SUNAT, reenviar el comprobante por correo y regenerar su PDF.
Consultar
Comprobantes, notas, retenciones, percepciones, guías, bajas, tus series, tus sucursales, clientes por DNI o RUC y el registro de ventas. Todo de solo lectura.
Lo que no puede hacer
Restricción
Detalle
Series y correlativos
Crear, deshabilitar o editar series, ni cambiar el siguiente correlativo. Eso es del panel.
Sucursales y clientes
Crear o borrar sucursales, ni crear clientes: solo consultarlos.
Tu cuenta
Ver o cambiar la configuración, las credenciales SUNAT, el certificado, el plan o los usuarios.
Otras keys
Crear, rotar o revocar keys de integración. Solo el propietario o un administrador, desde el panel.
Numerar
Elegir el correlativo: lo asigna Flashfact para que coincida siempre con tu panel.
Plan y límites
Flashfact Conecta lo habilita tu plan. Lo que vale es el texto completo de los Términos de uso; este es el resumen para quien integra.
Keys
Tu plan define cuántas keys puedes tener activas a la vez. Lo ves en Configuración → Conecta; si esa pestaña no aparece, tu plan no incluye Flashfact Conecta.
Si tu plan baja y tienes más keys que las permitidas, siguen funcionando las más antiguas y las demás quedan suspendidas, no borradas: vuelven a valer si mejoras el plan o revocas otra.
El canje de token admite hasta 20 intentos por minuto desde una misma IP.
Comprobantes
Lo que emites con tu key cuenta en el mismo límite mensual que lo que emites en el panel. Al llegar al límite la respuesta es 402 QUOTA_EXCEEDED.
Los tipos de comprobante que puedes emitir los define tu plan. Si pides uno que no incluye, responde 403 FORBIDDEN.
Con la suscripción suspendida o cancelada no se puede emitir: 402 SUBSCRIPTION_SUSPENDED.
Anular un comprobante no devuelve el uso de tu límite del mes.
Lo que pones de tu parte
Un certificado digital vigente y un usuario SOL secundario, configurados en el panel. Nunca nos des tu clave SOL principal.
La exactitud de los datos, precios e impuestos de cada comprobante: nosotros enviamos lo que tú envías.
Guardar tus comprobantes por el plazo legal.
Buenas prácticas
Una key por sistema. Tu tienda y tu ERP con keys distintas: si una se compromete, la revocas sin cortar la otra. Ponles un nombre que las distinga.
Limita por IP cuando tu servidor tenga IP fija. Es la defensa más simple contra una key filtrada.
Reutiliza el token. Pide uno nuevo solo cuando falte poco para que venza, no en cada petición: el canje tiene un límite por minuto.
Usa siempre Idempotency-Key al emitir. Un reintento tras un corte de red no duplica el comprobante ni consume otro correlativo.
Elige las series con GET /v1/emission/series en vez de escribirlas a mano, y revisa que estén habilitadas.
Rota el Secret si alguien que lo conocía deja el equipo. Con «invalidar ahora» el anterior deja de valer al instante.
Guarda el Secret fuera del código, en variables de entorno o en un gestor de secretos.
Errores
Los errores de acceso, plan y numeración los responde Flashfact con este formato. Los de validación del comprobante conservan el formato de SUNAT, con un elemento por campo.
json
{"error":{"code":"INVALID_REQUEST","message":"serie 'F999' no encontrada o deshabilitada para este tenant"}}
Código
HTTP
Cuándo
INVALID_REQUEST
400 / 422
Falta tipoDocumento o serie, el cuerpo no es JSON, la serie no existe o está deshabilitada, o reutilizaste una Idempotency-Key con un cuerpo distinto (422).
INVALID_CREDENTIALS
401
En el canje: la key no existe, está revocada o vencida, el Secret es incorrecto, la IP no está permitida o tu plan ya no incluye Flashfact Conecta. Es siempre la misma respuesta.
UNAUTHORIZED
401
El token venció, es inválido, o su key se revocó o quedó suspendida por tu plan. Pide un token nuevo; si sigue igual, revisa la key en el panel.
FORBIDDEN
403
Esa ruta no está permitida para una key de integración, o tu plan no incluye ese tipo de comprobante.
NOT_FOUND
404
El comprobante no existe o no es de tu empresa.
CONFLICT
409
Ya hay una emisión en curso con esa Idempotency-Key; reintenta en unos segundos.
QUOTA_EXCEEDED
402
Llegaste al límite mensual de comprobantes de tu plan.
SUBSCRIPTION_SUSPENDED
402
Tu suscripción está suspendida o cancelada: regulariza el pago desde el panel.
ACCOUNT_LOCKED
429
La key se bloqueó unos minutos por demasiados secretos incorrectos seguidos.
RATE_LIMITED
429
Demasiados canjes de token desde tu IP. Espera lo que indica Retry-After.
VALIDATION_ERROR
422
El comprobante no pasó las reglas de SUNAT. details trae un elemento por campo. Los códigos son los de SUNAT.
Modelos de respuesta
Los ejemplos de cada endpoint muestran solo algunos campos. Aquí está la estructura completa. Tu cliente debe ignorar los campos que no conozca: podemos añadir campos nuevos dentro de v1 sin avisar.
Comprobante (factura o boleta)
Lo devuelven POST /v1/invoices, GET /v1/invoices y GET /v1/invoices/{id}. Los campos opcionales sin valor se omiten de la respuesta; no vienen como null.
Identificación
9 campos
Campo
Tipo
Descripción
id
number
Identificador numérico. Úsalo en las rutas /{id}.
serie
string
Serie del comprobante.
correlativo
string
Correlativo como texto, con los ceros a la izquierda que enviaste.
Nombre de la API key que emitió (el RUC de la empresa).
Nota de crédito o débito
Lo devuelven POST /v1/notes, GET /v1/notes y GET /v1/notes/{id}. Comparte la estructura del comprobante (receptor, totales, items[], cuotas[], resultado de SUNAT, archivos y atribución) y añade estos campos.
Campos
11 campos
Campo
Tipo
Descripción
id
number
Identificador numérico. Úsalo en las rutas /{id}.
serie
string
Serie del comprobante.
correlativo
string
Correlativo como texto, con los ceros a la izquierda que enviaste.
Elemento de tiposCambio[] al crear un documento en moneda extranjera. En facturas, boletas y notas la posición 0 es la conversión para IGV, PLE y reportes, y la 1 es la de la detracción. En retenciones y percepciones hay uno por documento relacionado (campo item).
Campos
10 campos
Campo
Tipo
Descripción
item
number
Posición del documento relacionado (retenciones y percepciones).
moneda
string
Moneda convertida a PEN.
valor
string | null
Tipo de cambio aplicado. null si aún no se pudo resolver.
origen
string
sbs si coincide con el SBS aplicable; manual si lo enviaste distinto.
tasaSbs
string
Tipo de cambio SBS aplicable, para comparar.
desviacionPct
number
Desviación porcentual de tu valor frente al SBS.
fechaHecho / fechaCotizacion
string
Fecha del hecho generador y fecha de la cotización usada.
regla / reglaVersion / confianza
string / number
Regla normativa aplicada y su versión.
verificacion
string
ok, pendiente o no_disponible.
motivo / advertencias[]
string / arreglo
Tu motivo y avisos, por ejemplo un valor que se aparta del SBS.
Catálogos
Varios campos reciben códigos de los catálogos oficiales de la SUNAT (Anexo 8 de las reglas de validación, actualizadas al 24/04/2026). Cuando la API acepta solo una parte de un catálogo, la tabla lo indica en una columna aparte.
22 catálogos, 454 códigos
Cat. 1Tipo de comprobante41 códigos
Se usa en tipoDocumento, tipoDocModificado y los tipos de documentos relacionados
Código
Descripción
La API lo emite
01
Factura
Sí
03
Boleta de venta
Sí
04
Liquidación de compra
No
05
Boletos de Transporte Aéreo que emiten las Compañías de Aviación Comercial por el servicio de transporte aéreo regular de pasajeros, emitido de manera manual, mecanizada o por medios electrónicos (BME)
No
06
Carta de porte aéreo
No
07
Nota de crédito
Sí
08
Nota de débito
Sí
09
Guía de remisión remitente
Sí
11
Póliza emitida por las Bolsas de Valores
No
12
Ticket de máquina registradora
No
13
Documento emitido por bancos, instituciones financieras, crediticias y de seguros que se encuentren bajo el control de la Superintendencia de Banca y Seguros
No
14
Recibo servicios públicos
No
15
Boletos emitidos por el servicio de transporte terrestre regular urbano de pasajeros y el ferroviario público de pasajeros prestado en vía férrea local
No
16
Boleto de viaje emitido por las empresas de transporte público interprovincial de pasajeros
No
18
Documentos emitidos por las AFP
No
19
Boleto por atracciones y espectáculos públicos
No
20
Comprobante de retención
Sí
21
Conocimiento de embarque por el servicio de transporte de carga marítima
No
23
Pólizas de Adjudicación por remate o adjudicación de bienes
No
24
Certificado de pago de regalías emitidas por PERUPETRO S.A.
No
25
Documento de atribución
No
28
Etiquetas por el pago de la Tarifa Unificada de Uso de Aeropuerto – TUUA
No
29
Documentos emitidos por la COFOPRI
No
30
Documentos emitidos por las empresas que desempeñan el rol adquirente en los sistemas de pago mediante tarjetas de crédito y débito, emitidas por bancos e instituciones financieras o crediticias, domiciliados o no en el país.
No
31
Guía de remisión transportista
Sí
32
Documentos emitidos por recaudadoras de la Garantía de Red Principal
No
34
Documento del Operador
No
35
Documento del Partícipe
No
36
Recibo de Distribución de Gas Natural
No
37
Documentos que emitan los concesionarios del servicio de revisiones técnicas
Documentos emitidos por los adq. en los sistemas de pago por tarj. de crédito emitidas por ellas mismas
No
43
Boleto de compañías de aviación transporte aéreo no regular
No
45
Documentos emitidos por centros educativos y culturales, universidades, asociaciones y fundaciones
No
55
BVME para transporte ferroviario de pasajeros
No
56
Comprobante de pago SEAE / DAE-SEAE
No
71
Guía de remisión remitente complementaria
No
72
Guía de remisión transportista complementaria
No
87
Nota de crédito especial
No
88
Nota de débito especial
No
La API emite facturas, boletas, notas, guías, retenciones y percepciones. Los demás tipos solo aparecen como documento relacionado en algunos campos.
Cat. 2Monedas30 códigos
Se usa en moneda
Código
Descripción
PEN
Sol peruano
USD
Dólar estadounidense
EUR
Euro
GBP
Libra esterlina
JPY
Yen japonés
CHF
Franco suizo
CAD
Dólar canadiense
AUD
Dólar australiano
NZD
Dólar neozelandés
HKD
Dólar de Hong Kong
SGD
Dólar de Singapur
CNY
Yuan renminbi chino
KRW
Won surcoreano
INR
Rupia india
THB
Baht tailandés
MYR
Ringgit malayo
PHP
Peso filipino
BRL
Real brasileño
MXN
Peso mexicano
CLP
Peso chileno
COP
Peso colombiano
ARS
Peso argentino
BOB
Boliviano
PYG
Guaraní paraguayo
UYU
Peso uruguayo
VES
Bolívar venezolano
SEK
Corona sueca
NOK
Corona noruega
DKK
Corona danesa
ZAR
Rand sudafricano
El catálogo de SUNAT remite a la norma ISO 4217, que tiene más monedas. Estas 30 son las que la API acepta hoy; cualquier otra responde 422 con el código 3088.
Son las más habituales. El catálogo de SUNAT usa la Recomendación 20 de UN/ECE, con cientos de unidades; la API solo exige que el código no esté vacío y la SUNAT valida el resto.
Se usa en tipoDocumentoAdquirente, id_type, tipoDocDestinatario, tipoDocRemitente y similares
Código
Descripción
-
Sin documento (consumidor final en boleta). Es un valor de la API; no figura en el catálogo oficial.
0
Documento tributario no domiciliado sin RUC
1
Documento Nacional de Identidad
4
Carnet de extranjería
6
Registro Único de Contribuyentes
7
Pasaporte
A
Cédula Diplomática de identidad
B
Documento de identidad del país de residencia (no domiciliado)
C
Tax Identification Number - TIN – Doc Trib PP.NN
D
Identification Number - IN – Doc Trib PP. JJ
E
TAM- Tarjeta Andina de Migración
F
Permiso Temporal de Permanencia - PTP
G
Salvoconducto
H
Carné Permiso Temp.Perman. - CPP
Una factura de venta interna exige RUC. RUC y DNI se validan por formato (11 y 8 dígitos); los demás tipos aceptan hasta 15 caracteres sin espacios.
Cat. 7Afectación del IGV19 códigos
Se usa en items[].afectacionIGV
Código
Descripción
Código de tributo
10
Gravado - Operación Onerosa
1000
11
Gravado – Retiro por premio
9996
12
Gravado – Retiro por donación
9996
13
Gravado – Retiro
9996
14
Gravado – Retiro por publicidad
9996
15
Gravado – Bonificaciones
9996
16
Gravado – Retiro por entrega a trabajadores
9996
17
Gravado - IVAP
1016 o 9996
20
Exonerado - Operación Onerosa
9997
21
Exonerado - Transferencia gratuita
9996
30
Inafecto - Operación Onerosa
9998
31
Inafecto – Retiro por Bonificación
9996
32
Inafecto – Retiro
9996
33
Inafecto – Retiro por Muestras Médicas
9996
34
Inafecto - Retiro por Convenio Colectivo
9996
35
Inafecto – Retiro por premio
9996
36
Inafecto - Retiro por publicidad
9996
37
Inafecto - Transferencia gratuita
9996
40
Exportación de Bienes o Servicios
9995 o 9996
En operaciones gratuitas, valorVenta es un valor referencial y no suma a totalValorVenta ni a totalImpuestos.
Cat. 8Sistema de cálculo del ISC3 códigos
Se usa en items[].sistemaISC
Código
Descripción
01
Sistema al valor (Apéndice IV, lit. A – T.U.O IGV e ISC)
02
Aplicación del Monto Fijo ( Sistema específico, bienes en el apéndice III, Apéndice IV, lit. B – T.U.O IGV e ISC)
03
Sistema de Precios de Venta al Público (Apéndice IV, lit. C – T.U.O IGV e ISC)
Cat. 9Tipo de nota de crédito13 códigos
Se usa en tipoNota con tipoDocumento 07
Código
Descripción
01
Anulación de la operación
02
Anulación por error en el RUC
03
Corrección por error en la descripción o atención de reclamo respecto de bienes adquiridos o servicios prestados Corrección por error en la descripción y/o código de producto SUNAT
04
Descuento global
05
Descuento por ítem
06
Devolución total
07
Devolución por ítem
08
Bonificación
09
Disminución en el valor
10
Otros Conceptos
11
Ajustes de operaciones de exportación
12
Ajustes afectos al IVAP
13
Corrección o modificación del monto neto pendiente de pago y/o la(s) fechas(s) de vencimiento del pago único o de las cuotas y/o los montos correspondientes a cada cuota, de ser el caso
Una nota con ítems de afectación 17 debe ser de tipo 12.
Cat. 10Tipo de nota de débito6 códigos
Se usa en tipoNota con tipoDocumento 08
Código
Descripción
01
Intereses por mora
02
Aumento en el valor
03
Penalidades/ otros conceptos
11
Ajustes de operaciones de exportación
12
Ajustes afectos al IVAP
13
Penalidades
Una nota con ítems de afectación 17 debe ser de tipo 12.
Traslado entre establecimientos de la misma empresa
05
Consignación
06
Devolución
07
Recojo de bienes transformados
08
Importación
09
Exportación
13
Otros
14
Venta sujeta a confirmación del comprador
17
Traslado de bienes para transformación
18
Traslado emisor itinerante CP
Proveedor: solo motivos 02, 07 y 13. Comprador: solo motivos 03 y 13.
Cat. 22Régimen de percepción3 códigos
Se usa en codigoRegimen en percepciones
Código
Descripción
Tasa %
01
Percepción Venta Interna
2
02
Percepción a la adquisición de combustible
1
03
Percepción realizada al agente de percepción con tasa especial
0,5
tasaPercepcion debe coincidir con la tasa del régimen.
Cat. 23Régimen de retención2 códigos
Se usa en codigoRegimen en retenciones
Código
Descripción
01
Tasa 3%
02
Tasa 6%
tasaRetencion debe coincidir con la tasa del régimen. El régimen 02 solo rige hasta el 28/02/2014.
Cat. 51Tipo de operación31 códigos
Se usa en tipoOperacion
Código
Descripción
Comprobante
0101
Venta interna no sujeta a Detracción, Retención o Percepción
Factura, Boletas
0112
Venta Interna - Sustenta Gastos Deducibles Persona Natural
Factura
0113
Venta Interna-NRUS
Boleta
0200
Exportación de Bienes
Factura, Boletas
0201
Exportación de Servicios – Prestación servicios realizados íntegramente en el país
Factura, Boletas
0202
Exportación de Servicios – Prestación de servicios de hospedaje No Domiciliado
Factura
0203
Exportación de Servicios – Transporte de navieras
Factura, Boletas
0204
Exportación de Servicios – Servicios a naves y aeronaves de bandera extranjera
Factura, Boletas
0205
Exportación de Servicios - Servicios que conformen un Paquete Turístico
Factura
0206
Exportación de Servicios – Servicios complementarios al transporte de carga
Factura, Boletas
0207
Exportación de Servicios – Suministro de energía eléctrica a favor de sujetos domiciliados en ZED
Factura, Boletas
0208
Exportación de Servicios – Prestación servicios realizados parcialmente en el extranjero
Factura, Boletas
0301
Operaciones con Carta de porte aéreo (emitidas en el ámbito nacional)
Factura, Boletas
0302
Operaciones de Transporte ferroviario de pasajeros
Factura, Boletas
0401
Ventas no domiciliados que no califican como exportación
Factura, Boletas
0501
Compra interna
Liquidación de compra
0502
Anticipos
Liquidación de compra
0503
Compra de oro
Liquidación de compra
1001
Operación Sujeta a Detracción
Factura, Boletas
1002
Operación Sujeta a Detracción- Recursos Hidrobiológicos
Factura, Boletas
1003
Operación Sujeta a Detracción- Servicios de Transporte Pasajeros
Factura, Boletas
1004
Operación Sujeta a Detracción- Servicios de Transporte Carga
Factura, Boletas
2001
Operación Sujeta a Percepción
Factura, Boletas
2002
Operación sujeta a Retención de Renta de segunda categoría
Factura
2100
Créditos a empresas
Factura, Boletas
2101
Créditos de consumo revolvente
Factura, Boletas
2102
Créditos de consumo no revolvente
Factura, Boletas
2103
Otras operaciones no gravadas - Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público
Factura, Boletas
2104
Otras operaciones no gravadas - Empresas del sistema de seguros
Factura, Boletas
2105
Comprobante emitido por AFP
Boleta
2106
Venta Nacional a Turistas - Tax Free
Factura
Las operaciones 1001 a 1004 agregan automáticamente la leyenda 2006. Los códigos 05xx son de liquidación de compra, que esta API no emite.
Cat. 52Leyendas15 códigos
Se usa en leyendas[]
Código
Descripción
1000
Monto en Letras
1002
Leyenda "TRANSFERENCIA GRATUITA DE UN BIEN Y/O SERVICIO PRESTADO GRATUITAMENTE"
2000
Leyenda “COMPROBANTE DE PERCEPCIÓN”
2001
Leyenda “BIENES TRANSFERIDOS EN LA AMAZONÍA REGIÓN SELVA PARA SER CONSUMIDOS EN LA MISMA"
2002
Leyenda “SERVICIOS PRESTADOS EN LA AMAZONÍA REGIÓN SELVA PARA SER CONSUMIDOS EN LA MISMA”
2003
Leyenda “CONTRATOS DE CONSTRUCCIÓN EJECUTADOS EN LA AMAZONÍA REGIÓN SELVA”
2004
Leyenda “Agencia de Viaje - Paquete turístico”
2005
Leyenda “Venta realizada por emisor itinerante”
2006
Leyenda "Operación sujeta a detracción"
2007
Leyenda "Operación sujeta al IVAP"
2008
Leyenda: “VENTA EXONERADA DEL IGV-ISC-IPM. PROHIBIDA LA VENTA FUERA DE LA ZONA COMERCIAL DE TACNA”
2009
Leyenda: “PRIMERA VENTA DE MERCANCÍA IDENTIFICABLE ENTRE USUARIOS DE LA ZONA COMERCIAL”
2010
Restitucion Simplificado de Derechos Arancelarios
2011
Leyenda “EXPORTACION DE SERVICIOS - DECRETO LEGISLATIVO Nº 919”
2012
Observaciones relacionadas con el traslado de mercaderías
No repitas un código en el mismo comprobante.
Cat. 53Cargos, descuentos y deducciones22 códigos
Se usa en items[].descuentoTipo, items[].cargoTipo
Código
Descripción
Nivel
Se acepta en un ítem
00
Descuentos que afectan la base imponible del IGV/IVAP
Item
Sí
01
Descuentos que no afectan la base imponible del IGV/IVAP
Item
Sí
02
Descuentos globales que afectan la base imponible del IGV/IVAP
Global
No
03
Descuentos globales que no afectan la base imponible del IGV/IVAP
Global
No
04
Descuentos globales por anticipos gravados que afectan la base imponible del IGV/IVAP
Global
No
05
Descuentos globales por anticipos exonerados
Global
No
06
Descuentos globales por anticipos inafectos
Global
No
07
Factor de compensación - Decreto de urgencia N. 010-2004
Item
Sí
20
Anticipo de ISC
Global
No
45
FISE
Global
No
46
Recargo al consumo y/o propinas
Global
No
47
Cargos que afectan la base imponible del IGV/IVAP
Item
Sí
48
Cargos que no afectan la base imponible del IGV/IVAP
Item
Sí
49
Cargos globales que afectan la base imponible del IGV/IVAP
Global
No
50
Cargos globales que no afectan la base imponible del IGV/IVAP
Global
No
51
Percepción venta interna
Global
No
52
Percepción a la adquisición de combustible
Global
No
53
Percepción realizada al agente de percepción con tasa especial
Global
No
54
Factor de aportación - Decreto de urgencia N. 010-2004
Item
Sí
61
Retención de renta por anticipos
Global
No
62
Retención del IGV
Global
No
63
Retención de renta de segunda categoría
Global
No
Los de nivel global se envían con los totales (totalDescuentos, totalCargos, recargoConsumo), no por ítem. Un ítem no puede tener descuento y cargo a la vez; el cargo solo admite 47 o 48.
Cat. 54Bienes y servicios sujetos a detracción39 códigos
Se usa en adicional.detraccion.codigoSujeto
Código
Descripción
001
Azúcar y melaza de caña
002
Arroz
003
Alcohol etílico
004
Recursos hidrobiológicos
005
Maíz amarillo duro
007
Caña de azúcar
008
Madera
009
Arena y piedra.
010
Residuos, subproductos, desechos, recortes y desperdicios
011
Bienes gravados con el IGV, o renuncia a la exoneración
012
Intermediación laboral y tercerización
013
Animales vivos
014
Carnes y despojos comestibles
015
Abonos, cueros y pieles de origen animal
016
Aceite de pescado
017
Harina, polvo y “pellets” de pescado, crustáceos, moluscos y demás invertebrados acuáticos
019
Arrendamiento de bienes muebles
020
Mantenimiento y reparación de bienes muebles
021
Movimiento de carga
022
Otros servicios empresariales
023
Leche
024
Comisión mercantil
025
Fabricación de bienes por encargo
026
Servicio de transporte de personas
027
Servicio de transporte de carga
028
Transporte de pasajeros
030
Contratos de construcción
031
Oro gravado con el IGV
032
Paprika y otros frutos de los generos capsicum o pimienta
034
Minerales metálicos no auríferos
035
Bienes exonerados del IGV
036
Oro y demás minerales metálicos exonerados del IGV
037
Demás servicios gravados con el IGV
039
Minerales no metálicos
040
Bien inmueble gravado con IGV
041
Plomo
044
Servicio de beneficio de minerales metálicos gravado con el IGV
045
Minerales de oro y sus concentrados gravados con el IGV
099
Ley 30737
Cat. 55Concepto tributario o propiedad del ítem115 códigos
Se usa en items[].adicional
Código
Descripción
La API lo envía
3001
Detracciones: Recursos Hidrobiológicos-Matrícula de la embarcación
No
3002
Detracciones: Recursos Hidrobiológicos-Nombre de la embarcación
No
3003
Detracciones: Recursos Hidrobiológicos-Tipo de especie vendida
No
3004
Detracciones: Recursos Hidrobiológicos-Lugar de descarga
No
3005
Detracciones: Recursos Hidrobiológicos-Fecha de descarga
No
3006
Detracciones: Recursos Hidrobiológicos-Cantidad de especie vendida
No
3050
Transportre Terreste - Número de asiento
Sí
3051
Transporte Terrestre - Información de manifiesto de pasajeros
Sí
3052
Transporte Terrestre - Número de documento de identidad del pasajero
Sí
3053
Transporte Terrestre - Tipo de documento de identidad del pasajero
Sí
3054
Transporte Terrestre - Nombres y apellidos del pasajero
Sí
3055
Transporte Terrestre - Ciudad o lugar de destino - Ubigeo
Sí
3056
Transporte Terrestre - Ciudad o lugar de destino - Dirección detallada
No
3057
Transporte Terrestre - Ciudad o lugar de origen - Ubigeo
Sí
3058
Transporte Terrestre - Ciudad o lugar de origen - Dirección detallada
No
3059
Transporte Terrestre - Fecha de inicio programado
Sí
3060
Transporte Terrestre - Hora de inicio programado
Sí
4000
Beneficio Hospedajes-Paquete turístico: Código de país de emisión del pasaporte
Sí
4001
Beneficio Hospedajes: Código de país de residencia del sujeto no domiciliado
Sí
4002
Beneficio Hospedajes: Fecha de ingreso al país
Sí
4003
Beneficio Hospedajes: Fecha de Ingreso al Establecimiento
Sí
4004
Beneficio Hospedajes: Fecha de Salida del Establecimiento
Sí
4005
Beneficio Hospedajes: Número de Días de Permanencia
Sí
4006
Beneficio Hospedajes: Fecha de Consumo
Sí
4007
Beneficio Hospedajes-Paquete turístico: Nombres y apellidos del huesped
Sí
4008
Beneficio Hospedajes-Paquete turístico: Tipo de documento de identidad del huesped
Sí
4009
Beneficio Hospedajes-Paquete turístico: Número de documento de identidad del huesped
Sí
4030
Carta Porte Aéreo: Lugar de origen - Código de ubigeo
No
4031
Carta Porte Aéreo: Lugar de origen - Dirección detallada
No
4032
Carta Porte Aéreo: Lugar de destino - Código de ubigeo
No
4033
Carta Porte Aéreo: Lugar de destino - Dirección detallada
No
4040
BVME transporte ferroviario: Pasajero - Apellidos y Nombres
No
4041
BVME transporte ferroviario: Pasajero - Tipo de documento de identidad
No
4042
BVME transporte ferroviario: Servicio transporte: Ciudad o lugar de origen - Código de ubigeo
No
4043
BVME transporte ferroviario: Servicio transporte: Ciudad o lugar de origen - Dirección detallada
No
4044
BVME transporte ferroviario: Servicio transporte: Ciudad o lugar de destino - Código de ubigeo
No
4045
BVME transporte ferroviario: Servicio transporte: Ciudad o lugar de destino - Dirección detallada
No
4046
BVME transporte ferroviario: Servicio transporte:Número de asiento
No
4047
BVME transporte ferroviario: Servicio transporte: Hora programada de inicio de viaje
No
4048
BVME transporte ferroviario: Servicio transporte: Fecha programada de inicio de viaje
No
4049
BVME transporte ferroviario: Pasajero - Número de documento de identidad
No
4060
Regalía Petrolera: Decreto Supremo de aprobación del contrato
No
4061
Regalía Petrolera: Area de contrato (Lote)
No
4062
Regalía Petrolera: Periodo de pago - Fecha de inicio
No
4063
Regalía Petrolera: Periodo de pago - Fecha de fin
No
4064
Regalía Petrolera: Fecha de Pago
No
5000
Proveedores Estado: Número de Expediente
No
5001
Proveedores Estado: Código de Unidad Ejecutora
No
5002
Proveedores Estado: N° de Proceso de Selección
No
5003
Proveedores Estado: N° de Contrato
No
5010
Numero de Placa
Sí
5011
Categoria
No
5012
Marca
No
5013
Modelo
No
5014
Color
No
5015
Motor
No
5016
Combustible
No
5017
Form. Rodante
No
5018
VIN
No
5019
Serie/Chasis
No
5020
Año fabricacion
No
5021
Año modelo
No
5022
Version
No
5023
Ejes
No
5024
Asientos
No
5025
Pasajeros
No
5026
Ruedas
No
5027
Carroceria
No
5028
Potencia
No
5029
Cilindros
No
5030
Ciliindrada
No
5031
Peso Bruto
No
5032
Peso Neto
No
5033
Carga Util
No
5034
Longitud
No
5035
Altura
No
5036
Ancho
No
5060
Gas Natural - Lectura Anterior
No
5061
Gas Natural - Lectura Actual
No
5062
Gas Natural - Volumen consumido a Condiciones de lectura
No
5063
Gas Natural - Factor de correccion del volumen
No
5064
Gas Natural - Volumen a condiciones Estandares
No
5065
Gas Natural - Volumen facturado
No
5066
Gas Natural - Poder Calorifico Superior Promedio del Gas
No
6000
Comercialización de Oro: Código Unico Concesión Minera
No
6001
Comercialización de Oro: N° declaración compromiso
No
6002
Comercialización de Oro: N° Reg. Especial .Comerci. Oro
No
6003
Comercialización de Oro: N° Resolución que autoriza Planta de Beneficio
No
6004
Comercialización de Oro: Ley Mineral (% concent. oro)
No
6005
Comercialización de Oro : Naturaleza del mineral
No
6006
Comercialización de Oro : Nombre del derecho minero
No
7000
Gastos Art. 37 Renta: Número de Placa
Sí
7001
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Tipo de préstamo
No
7002
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Indicador de Primera Vivienda
No
7003
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Partida Registral
No
7004
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Número de contrato
No
7005
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Fecha de otorgamiento del crédito
No
7006
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Código de ubigeo
No
7007
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Dirección completa
No
7008
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Urbanización
No
7009
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Provincia
No
7010
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Distrito
No
7011
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Dirección del predio - Departamento
No
7012
Empresas del sistema financiero y cooperativas de ahorro y crédito no autorizadas a captar recursos del público: Monto del crédito otorgado (capital)
No
7013
Empresas del sistema de seguro: Número de póliza
No
7014
Empresas del sistema de seguro: Fecha de inicio/término de vigencia de cobertura
No
7015
Empresas del sistema de seguro: Tipo de seguro
No
7016
Empresas del sistema de seguro: Suma asegurada / alcance de cobertura o monto
No
7017
AFP: CUSPP
No
7018
AFP: Periodo
No
7019
AFP: Monto del interes moratorio
No
7020
Partida arancelaria
No
7021
Numero de declaracion aduanera (DAM)
No
7022
Indicador de bien normalizado
No
7023
Numero de serie en la DAM o DS
No
Son los datos adicionales de un ítem: transporte terrestre de pasajeros (3050 a 3060), hospedaje y paquete turístico (4000 a 4009), placas (5010 y 7000). El transporte de carga se envía por el bloque servicioTransporteCarga.
Cat. 59Medios de pago22 códigos
Se usa en adicional.detraccion.medioPago
Código
Descripción
Se acepta en detracción
001
Depósito en cuenta
Sí
002
Giro
Sí
003
Transferencia de fondos
Sí
004
Orden de pago
Sí
005
Tarjeta de débito
Sí
006
Tarjeta de crédito emitida en el país por una empresa del sistema financiero
Sí
007
Cheques con la cláusula de "NO NEGOCIABLE", "INTRANSFERIBLES", "NO A LA ORDEN" u otra equivalente, a que se refiere el inciso g) del artículo 5° de la ley
Sí
008
Efectivo, por operaciones en las que no existe obligación de utilizar medio de pago
Sí
009
Efectivo, en los demás casos
Sí
010
Medios de pago usados en comercio exterior
Sí
011
Documentos emitidos por las EDPYMES y las cooperativas de ahorro y crédito no autorizadas a captar depósitos del público
Sí
012
Tarjeta de crédito emitida en el país o en el exterior por una empresa no perteneciente al sistema financiero, cuyo objeto principal sea la emisión y administración de tarjetas de crédito
Sí
013
Tarjetas de crédito emitidas en el exterior por empresas bancarias o financieras no domiciliadas
No
101
Transferencias – Comercio exterior
No
102
Cheques bancarios - Comercio exterior
No
103
Orden de pago simple - Comercio exterior
No
104
Orden de pago documentario - Comercio exterior
No
105
Remesa simple - Comercio exterior
No
106
Remesa documentaria - Comercio exterior
No
107
Carta de crédito simple - Comercio exterior
No
108
Carta de crédito documentario - Comercio exterior
No
999
Otros medios de pago
No
Cat. 61Documentos relacionados al transporte26 códigos
Se usa en documentosRelacionados[].tipoDoc en guías
Código
Descripción
Guía aplicable
01
Factura
remitente, transportista
03
Boleta de Venta
remitente, transportista
04
Liquidación de Compra
remitente, transportista
09
Guía de Remisión Remitente
remitente, transportista
12
Ticket o cinta emitido por máquina registradora
remitente, transportista
31
Guía de Remisión Transportista
solo transportista
48
Comprobante de Operaciones – Ley N° 29972
remitente, transportista
49
Constancia de Depósito - IVAP (Ley 28211)
solo remitente
50
Declaración Aduanera de Mercancías
remitente, transportista
52
Declaración Simplificada (DS)
remitente, transportista
65
Autorización de Circulación para transportar MATPEL – Callao
solo transportista
66
Autorización de Circulación para transporte de carga y mercancías en Lima Metropolitana
solo transportista
67
Permiso de Operación Especial para el servicio de transporte de MATPEL - MTC
solo transportista
68
Habilitación Sanitaria de Transporte Terrestre de Productos Pesqueros y Acuícolas
solo transportista
69
Permiso / Autorización de operación de transporte de mercancías
solo transportista
71
Resolución de Adjudicación de bienes – SUNAT
solo remitente
72
Resolución de Comiso de bienes – SUNAT
solo remitente
73
Guía de Transporte Forestal o de Fauna - SERFOR
solo remitente
74
Guía de Tránsito – SUCAMEC
solo remitente
75
Autorización para operar como empresa de Saneamiento Ambiental – MINSA -
solo remitente
76
Autorización para manejo y recojo de residuos sólidos peligrosos y no peligrosos
solo remitente
77
Certificado fitosanitario la movilización de plantas, productos vegetales, y otros artículos reglamentados
solo remitente
78
Registro Único de Usuarios y Transportistas de Alcohol Etílico
solo remitente
80
Constancia de Depósito – Detracción
remitente, transportista
81
Código de autorización emitida por el SCOP
solo remitente
82
Declaración jurada de mudanza
solo transportista
La guía transportista debe incluir al menos una guía remitente (09) o transportista (31).
Referencia de endpoints
Cada endpoint indica sus campos, un ejemplo de request y todas las respuestas posibles. Todos se pueden probar en Demo con una key.
Acceso con tu key
app-api.flashfact.pe · Token Bearer de tu key
Se llama una vez cada 15 minutos (o cuando el token venza) con tu Access Key ID y tu Secret. Con el token se firman, sin más, todas las demás peticiones.
Canjear tu key por un token
POST/v1/auth/api-key
Devuelve un token Bearer de 15 minutos que sirve únicamente para emitir, anular y consultar comprobantes. Se limita por IP: tras 20 intentos en un minuto responde 429. Si la key es incorrecta, está revocada o vencida, tiene una lista de IPs que no incluye la tuya, o tu plan ya no incluye Flashfact Conecta, la respuesta es siempre la misma 401.
Una factura (01) o boleta (03) se crea en estado DRAFT y se envía a SUNAT en segundo plano. Consulta el detalle hasta ver ACCEPTED o REJECTED.
Emitir una factura o boleta
POST/v1/emission/invoices
Valida el comprobante con las reglas de SUNAT, lo guarda y lo encola. La respuesta solo confirma que quedó en cola: el resultado de SUNAT llega después. Reintentos seguros con el header Idempotency-Key.
Sucursal de la serie. Si lo omites se usa tu sucursal principal.
terminal_id
string
Caja de la serie (el terminal_id que ves en GET /v1/emission/series). Si lo omites se usa la caja principal de la sucursal.
Ejemplo de request
json
{"tipoDocumento":"03","tipoOperacion":"0101","serie":"B001","fechaEmision":"2026-10-11","moneda":"PEN","tipoDocumentoAdquirente":"1","numDocumentoAdquirente":"12345678","razonSocialAdquirente":"JUAN PEREZ","totalImpuestos":18.00,"totalValorVenta":100.00,"totalPrecioVenta":118.00,"importeTotal":118.00,"baseImponibleIGV":100.00,"totalIGV":18.00,"formaPago":{"tipo":"Contado"},"correosNotificacion":["juan@correo.com"],"items":[{"numeroItem":1,"unidadMedida":"NIU","cantidad":2,"descripcion":"Polo de algodón","valorUnitario":50.00,"precioUnitario":59.00,"valorVenta":100.00,"afectacionIGV":"10","igv":18.00,"totalImpuestosItem":18.00}]}
{"data":{"id":1042,"tipoDocumento":"03","tipoOperacion":"0101","serie":"B001","correlativo":"00000123","fechaEmision":"2026-10-11","moneda":"PEN","tipoDocumentoAdquirente":"1","numDocumentoAdquirente":"12345678","razonSocialAdquirente":"JUAN PEREZ","totalImpuestos":18,"totalValorVenta":100,"totalPrecioVenta":118,"importeTotal":118,"baseImponibleIGV":100,"totalIGV":18,"formaPago":"Contado","estado":"DRAFT","items":[{"numeroItem":1,"descripcion":"Polo de algodón","cantidad":2,"valorVenta":100,"afectacionIGV":"10"}],"fechaCreacion":"2026-10-11T15:04:05Z"}}
Notas
Los totales se validan contra los ítems con tolerancia de ±1 sol. Un descuento o cargo global se prorratea entre las bases por tipo de afectación.
En producción la empresa necesita certificado digital y usuario SOL secundario configurados; sin ellos el envío falla.
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar comprobantes
GET/v1/emission/invoices
Parámetros de query
11 campos
Campo
Tipo
Descripción
tipoDocumento
string
01 o 03.
estado
string
Uno o varios separados por coma (REJECTED,FAILED): DRAFT, SENDING, SENT, ACCEPTED, REJECTED, FAILED, VOID_PENDING o VOIDED.
fechaDesde / fechaHasta
string
YYYY-MM-DD, ambos inclusive.
serie
string
Una o varias series separadas por coma: F001,B001.
{"data":{"id":1042,"tipoDocumento":"03","serie":"B001","correlativo":"00000123","importeTotal":118,"estado":"ACCEPTED","codigoRespuesta":"0","descripcionRespuesta":"La Boleta de Venta numero B001-00000123, ha sido aceptada","xmlUrl":"https://…/B001-00000123.xml?X-Amz-Expires=900…","cdrUrl":"https://…/R-B001-00000123.xml?…","pdfUrl":"https://…/B001-00000123.pdf?…","emailLogs":[{"toEmail":"juan@correo.com","status":"DELIVERED","sentAt":"2026-10-11T15:04:20Z"}],"fechaCreacion":"2026-10-11T15:04:05Z"}}
Notas
xmlUrl, cdrUrl y pdfUrl son enlaces firmados que duran 15 minutos y solo aparecen cuando el archivo ya existe. Pide el detalle otra vez para renovarlos.
Si el comprobante fue dado de baja verás motivoBaja, ticketBaja, estadoBaja (PENDING, SENDING, SENT, COMPLETED, ERROR, FAILED), fechaEnvioBaja y fechaResolucion.
Totales de un filtro
GET/v1/emission/invoices/summary
Acepta los mismos filtros que el listado (sin paginación) y devuelve cantidades y montos vigentes.
Parámetros de query
9 campos
Campo
Tipo
Descripción
tipoDocumento
string
01 o 03.
estado
string
Uno o varios separados por coma (REJECTED,FAILED): DRAFT, SENDING, SENT, ACCEPTED, REJECTED, FAILED, VOID_PENDING o VOIDED.
fechaDesde / fechaHasta
string
YYYY-MM-DD, ambos inclusive.
serie
string
Una o varias series separadas por coma: F001,B001.
Vuelve a encolar un comprobante que quedó en DRAFT (por ejemplo, si falló la cola al crearlo) o reenvía uno en FAILED, con el mismo número, después de corregir la causa del error (certificado, credenciales SOL…). El motivo del último intento fallido viene en descripcionRespuesta.
Parámetros de ruta
1 campo · 1 obligatorio
Campo
Tipo
Descripción
idobligatorio
number
ID numérico del documento (campo id de la respuesta).
Respuestas
json
{"data":{"id":1042,"estado":"DRAFT","mensaje":"comprobante enviado a la cola de emisión"}}
Anular un comprobante
POST/v1/emission/invoices/{id}/void
Factura: comunicación de baja. Boleta: se incluye en el resumen diario. Solo si está ACCEPTED y dentro de 7 días desde la emisión.
Parámetros de ruta
1 campo · 1 obligatorio
Campo
Tipo
Descripción
idobligatorio
number
ID numérico del documento (campo id de la respuesta).
Cuerpo (JSON)
1 campo · 1 obligatorio
Campo
Tipo
Descripción
motivoobligatorio
string
Mínimo 3 caracteres. Obligatorio para facturas; las boletas no lo usan.
Ejemplo de request
json
{"motivo":"Error en el importe"}
Respuestas
json
{"data":{"estado":"VOID_PENDING"}}
Notas
El avance se consulta en el detalle (estado y estadoBaja) o en GET /v1/invoices/bajas.
Listar comunicaciones de baja
GET/v1/emission/bajas
Parámetros de query
3 campos
Campo
Tipo
Descripción
invoiceId
number
Solo las bajas que incluyen ese comprobante.
page
number
Página, desde 1. Por defecto 1.
perPage
number
Resultados por página. Por defecto 20.
Respuestas
json
{"data":[{"id":7,"fechaReferencia":"2026-10-11","ticket":"202610110001","estado":"COMPLETED","cdrUrl":"https://…","documentos":[{"invoiceId":1042,"serie":"F001","correlativo":"00000010","motivoBaja":"Error en el importe"}]}],"meta":{"total":1,"page":1,"perPage":20}}
Enviar el comprobante por correo
POST/v1/emission/invoices/{id}/send-email
Envía el PDF, XML y CDR de un comprobante ya emitido a las direcciones indicadas.
Parámetros de ruta
1 campo · 1 obligatorio
Campo
Tipo
Descripción
idobligatorio
number
ID numérico del documento (campo id de la respuesta).
Cuerpo (JSON)
1 campo · 1 obligatorio
Campo
Tipo
Descripción
emails[]obligatorio
arreglo
Al menos un correo.
Ejemplo de request
json
{"emails":["contabilidad@cliente.com"]}
Respuestas
json
{"data":{"status":"sent"}}
Enlace del PDF para compartir
GET/v1/emission/invoices/{id}/pdf-link
Enlace de larga duración (7 días) al PDF, pensado para enviarlo por chat o WhatsApp.
Parámetros de ruta
1 campo · 1 obligatorio
Campo
Tipo
Descripción
idobligatorio
number
ID numérico del documento (campo id de la respuesta).
Vuelve a generar el PDF con la plantilla vigente de la empresa. El XML y el CDR no se tocan. Aplica igual a /v1/notes, /v1/retenciones, /v1/percepciones y /v1/guias/*.
Parámetros de ruta
1 campo · 1 obligatorio
Campo
Tipo
Descripción
idobligatorio
number
ID numérico del documento (campo id de la respuesta).
Respuestas
json
{"data":{"status":"queued"}}
Notas de crédito y débito
app-api.flashfact.pe · Token Bearer de tu key
Corrigen o ajustan una factura o boleta ya emitida. Se envían a SUNAT igual que un comprobante: nacen en DRAFT y se resuelven en segundo plano.
Emitir una nota de crédito o débito
POST/v1/emission/invoices
Misma ruta que las facturas y boletas: Flashfact distingue la nota por tipoDocumento (07 crédito, 08 débito). Si la moneda no es PEN y no envías tipoCambio, se hereda el del comprobante afectado cuando existe. Es idempotente por serie y correlativo.
Nota
13 campos · 12 obligatorios
Campo
Tipo
Descripción
tipoDocumentoobligatorio
string
07 nota de crédito u 08 nota de débito.
serieobligatorio
string
F + 3 alfanuméricos si modifica una factura (FC01); B + 3 si modifica una boleta (BC01).
Valor referencial unitario, para operaciones gratuitas.
adicional
objeto
Datos de catálogo 55 (transporte de carga, pasajeros, hospedaje, paquete turístico).
Forma de pago (opcional)
3 campos
Campo
Tipo
Descripción
formaPago.tipo
string
Contado o Credito.
formaPago.monto
number
Monto pendiente de pago (crédito).
formaPago.cuotas[]
arreglo
Solo crédito. Cada cuota: numero, monto, fechaVence (YYYY-MM-DD).
Tipo de cambio
5 campos
Campo
Tipo
Descripción
tipoCambio
number | string
Tipo de cambio a PEN si la moneda no es PEN (hasta 4 enteros y 6 decimales). Si lo omites se usa el SBS aplicable.
fechaCambio
string
YYYY-MM-DD. Fecha a la que corresponde el tipo de cambio enviado (informativa).
motivoTipoCambio
string
Por qué difiere del SBS (TC pactado, banco, contrato).
confirmarTipoCambio
boolean
Obligatorio en true si tu valor se aparta más de 10 % del SBS.
fechaHechoGenerador
string
YYYY-MM-DD. Fecha que fija el tipo de cambio del IGV. Por defecto, fechaEmision.
Dónde se emite
2 campos
Campo
Tipo
Descripción
branch_id
string
Sucursal de la serie. Si lo omites se usa tu sucursal principal.
terminal_id
string
Caja de la serie (el terminal_id que ves en GET /v1/emission/series). Si lo omites se usa la caja principal de la sucursal.
Ejemplo de request
json
{"tipoDocumento":"07","serie":"FC01","fechaEmision":"2026-10-11","moneda":"PEN","tipoNota":"01","motivoNota":"Anulación de la operación","docModificado":"F001-00000010","tipoDocModificado":"01","tipoDocumentoAdquirente":"6","numDocumentoAdquirente":"20123456789","razonSocialAdquirente":"EMPRESA SAC","totalImpuestos":18.00,"totalValorVenta":100.00,"totalPrecioVenta":118.00,"importeTotal":118.00,"baseImponibleIGV":100.00,"totalIGV":18.00,"items":[{"numeroItem":1,"unidadMedida":"NIU","cantidad":2,"descripcion":"Polo de algodón","valorUnitario":50.00,"precioUnitario":59.00,"valorVenta":100.00,"afectacionIGV":"10","igv":18.00,"totalImpuestosItem":18.00}]}
{"data":{"id":310,"tipoDocumento":"07","serie":"FC01","correlativo":"00000001","fechaEmision":"2026-10-11","moneda":"PEN","tipoNota":"01","motivoNota":"Anulación de la operación","docModificado":"F001-00000010","tipoDocModificado":"01","importeTotal":118,"estado":"DRAFT","fechaCreacion":"2026-10-11T15:10:00Z"}}
Notas
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar notas
GET/v1/emission/notes
Parámetros de query
5 campos
Campo
Tipo
Descripción
tipoDocumento
string
07 u 08.
estado
string
DRAFT, SENDING, SENT, ACCEPTED, REJECTED o FAILED.
docModificado
string
Solo las notas que afectan a ese comprobante, por ejemplo F001-00000010.
{"data":{"id":310,"tipoDocumento":"07","serie":"FC01","correlativo":"00000001","fechaEmision":"2026-10-11","moneda":"PEN","tipoNota":"01","motivoNota":"Anulación de la operación","docModificado":"F001-00000010","tipoDocModificado":"01","importeTotal":118,"estado":"DRAFT","fechaCreacion":"2026-10-11T15:10:00Z"}}
Retenciones y percepciones
app-api.flashfact.pe · Token Bearer de tu key
Comprobantes de retención (20) y percepción (40). Cada uno referencia documentos relacionados y, si están en moneda extranjera, un tipo de cambio por documento.
Emitir un comprobante de retención
POST/v1/emission/retenciones
Comprobante
8 campos · 7 obligatorios
Campo
Tipo
Descripción
serieobligatorio
string
R + 3 alfanuméricos (R001).
fechaEmisionobligatorio
string
YYYY-MM-DD.
codigoRegimenobligatorio
string
Catálogo 23: 01 régimen general (3 %), 02 régimen especial (6 %, solo hasta 28/02/2014).
tasaRetencionobligatorio
number
Debe coincidir con la tasa del régimen.
tipoDocumentoProveedorobligatorio
string
Siempre 6 (RUC).
rucProveedorobligatorio
string
11 dígitos.
razonSocialProveedorobligatorio
string
Razón social.
direccionProveedor / observaciones / redondeo
varios
Opcionales.
Documentos relacionados (documentos[])
10 campos · 6 obligatorios
Campo
Tipo
Descripción
tipoDocumentoobligatorio
string
01, 12, 07, 08 o 20.
numeroDocumentoobligatorio
string
serie-correlativo del documento relacionado.
fechaEmision / importeTotal / monedaobligatorio
varios
Datos del documento.
numeroPago / fechaPago / importePago / monedaPago
varios
Datos del pago. El par documento más numeroPago no puede repetirse.
importeRetenidoobligatorio
number
Mayor que 0.
fechaRetencionobligatorio
string
YYYY-MM-DD.
importeNetoPagadoobligatorio
number
Mayor que 0.
monedaOrigen
string
Si la envías debe coincidir con la moneda del documento.
tipoCambio
number | string
Obligatorio para SUNAT si el documento no está en PEN (salvo nota de crédito). Si falta se usa el SBS de la fecha de pago o cobro.
totalPagado suma los importes netos pagados en soles, como exige SUNAT.
A diferencia de facturas y notas, repetir serie y correlativo no devuelve el original: usa correlativos que no hayas emitido.
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar retenciones
GET/v1/emission/retenciones
Parámetros de query
3 campos
Campo
Tipo
Descripción
estado
string
DRAFT, SENDING, SENT, ACCEPTED, REJECTED o FAILED.
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar percepciones
GET/v1/emission/percepciones
Parámetros de query
3 campos
Campo
Tipo
Descripción
estado
string
DRAFT, SENDING, SENT, ACCEPTED, REJECTED o FAILED.
Guía de remisión remitente (09) y transportista (31). SUNAT las procesa con un ticket asíncrono, así que pueden tardar en pasar de SENT a ACCEPTED.
Emitir una guía de remisión remitente
POST/v1/emission/guias/remitente
Guía
19 campos · 11 obligatorios
Campo
Tipo
Descripción
serieobligatorio
string
T + 3 alfanuméricos en la guía remitente (T001); V + 3 en la transportista (V001).
fechaEmisionobligatorio
string
YYYY-MM-DD.
horaEmisionobligatorio
string
HH:MM:SS. A diferencia de las facturas, es obligatoria.
motivoTrasladoobligatorio
string
Catálogo 20: 01 venta, 02 compra, 04 traslado entre establecimientos...
fechaInicioTrasladoobligatorio
string
YYYY-MM-DD.
pesoBrutoobligatorio
number
Mayor que 0.
unidadPesoobligatorio
string
KGM o TNE.
observaciones
string
Texto libre.
indicadores[]
arreglo
Textos que activan reglas: SUNAT_Envio_IndicadorTrasladoVehiculoM1L (traslado en vehículo M1 o L, sin transportista) y SUNAT_Envio_IndicadorVehiculoConductoresTransp (vehículo y conductores en transporte público).
Conductor principal. Mismas condiciones que la placa.
Líneas (lineas[])
4 campos · 3 obligatorios
Campo
Tipo
Descripción
cantidadobligatorio
number
Mayor que 0.
unidadobligatorio
string
Código de unidad UN/ECE.
descripcionobligatorio
string
Descripción de la mercancía.
codProducto / codSUNAT / partida
string
Código interno, código SUNAT de producto y partida arancelaria.
Dónde se emite
2 campos
Campo
Tipo
Descripción
branch_id
string
Sucursal de la serie. Si lo omites se usa tu sucursal principal.
terminal_id
string
Caja de la serie (el terminal_id que ves en GET /v1/emission/series). Si lo omites se usa la caja principal de la sucursal.
Ejemplo de request
json
{"serie":"T001","fechaEmision":"2026-10-11","horaEmision":"10:30:00","tipoDocDestinatario":"6","numDocDestinatario":"20123456789","nombreDestinatario":"CLIENTE SAC","motivoTraslado":"01","modalidadTransporte":"02","fechaInicioTraslado":"2026-10-12","pesoBruto":120.5,"unidadPeso":"KGM","placa":"ABC123","tipoDocConductor":"1","numDocConductor":"12345678","nombresConductor":"PEDRO","apellidosConductor":"RAMOS","ubigeoOrigen":"150101","direccionOrigen":"Av. Lima 123","ubigeoDestino":"040101","direccionDestino":"Calle Mercado 456","lineas":[{"cantidad":10,"unidad":"NIU","descripcion":"Caja de polos"}]}
Si la cola está caída la guía se guarda igual y la API responde 201: no hay error que reintentar. Revisa que su estado pase de DRAFT.
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar guías remitente
GET/v1/emission/guias/remitente
Parámetros de query
3 campos
Campo
Tipo
Descripción
estado
string
DRAFT, SENDING, SENT, ACCEPTED, REJECTED o FAILED.
T + 3 alfanuméricos en la guía remitente (T001); V + 3 en la transportista (V001).
fechaEmisionobligatorio
string
YYYY-MM-DD.
horaEmisionobligatorio
string
HH:MM:SS. A diferencia de las facturas, es obligatoria.
motivoTrasladoobligatorio
string
Catálogo 20: 01 venta, 02 compra, 04 traslado entre establecimientos...
fechaInicioTrasladoobligatorio
string
YYYY-MM-DD.
pesoBrutoobligatorio
number
Mayor que 0.
unidadPesoobligatorio
string
KGM o TNE.
observaciones
string
Texto libre.
indicadores[]
arreglo
Textos que activan reglas: SUNAT_Envio_IndicadorTrasladoVehiculoM1L (traslado en vehículo M1 o L, sin transportista) y SUNAT_Envio_IndicadorVehiculoConductoresTransp (vehículo y conductores en transporte público).
Si la cola está caída la guía se guarda igual y la API responde 201: no hay error que reintentar. Revisa que su estado pase de DRAFT.
Envías la serie y Flashfact asigna el correlativo, con el mismo contador de tu panel: no se repite ni se salta. La serie debe existir y estar habilitada en tu cuenta.
Envía el header Idempotency-Key (cualquier texto único por comprobante) para reintentar sin duplicar: con la misma clave y el mismo cuerpo recibes la respuesta original.
Listar guías transportista
GET/v1/emission/guias/transportista
Parámetros de query
3 campos
Campo
Tipo
Descripción
estado
string
DRAFT, SENDING, SENT, ACCEPTED, REJECTED o FAILED.
Consulta RENIEC o SUNAT y guarda el cliente en tu empresa en segundo plano. Para un RUC devuelve también el estado y la condición de domicilio.
Parámetros de query
2 campos · 2 obligatorios
Campo
Tipo
Descripción
tipoobligatorio
string
Catálogo 6: 1 para DNI, 6 para RUC. Otros valores, incluido DNI o RUC en texto, responden 404.
numeroobligatorio
string
Número de documento.
Respuestas
json
{"data":{"id_type":"6","id_number":"20123456789","name":"EMPRESA SAC","address":"AV. LIMA 123 - LIMA","estado":"ACTIVO","condicion":"HABIDO"}}
Notas
Los datos vienen de registros públicos y fuentes externas: pueden estar incompletos, desactualizados o no estar disponibles. Revísalos antes de emitir (Términos de uso, sección 4).
Listar sucursales
GET/v1/emission/branches
Locales anexos de la empresa. Devuelve un arreglo simple, sin paginación.