Documentación API
mblapirest actuando como tu propio proveedor de servicios electrónicos (PSE): firmamos tus comprobantes con nuestro certificado (o el tuyo propio) y, si quieres, los enviamos directamente a SUNAT. Pensado para revendedores — el mismo rol que cumplen Smart PSE o QPse — así que si ya integraste alguno de esos, el contrato de esta API te va a resultar familiar.
X-Api-Key); esta es para revender el servicio a varios RUC de terceros, cada uno con sus propias credenciales.Introducción
URL base
https://mblapirest.com/pse-api/v1
Cómo empezar
- Pídenos que activemos tu cuenta de revendedor. Te entregamos un token de cuenta una sola vez — guárdalo, no se vuelve a mostrar.
- Con ese token, registra cada RUC de tu cliente:
POST /companies. La respuesta trae lascredenciales_cpede esa empresa (también una sola vez). - Con esas credenciales, pide un token corto de firma:
POST /auth/cpe/token. - Con el token corto, firma (
POST /cpe/generar) o firma y envía a SUNAT (POST /cpe/procesar) cada comprobante. - Para anular, recuperar un CDR perdido o consultar un envío que quedó en proceso, ver Gestión de lo ya emitido.
Ambientes
Cada empresa (RUC) tiene un environment propio: demo o produccion. Además, /cpe/generar y /cpe/procesar tienen variantes explícitas -demo para pruebas sin tocar el ambiente de producción de SUNAT.
Qué tipos de comprobante cubre cada endpoint
| Tipo | /cpe/generar (solo firma) | /cpe/procesar (firma y envía) |
|---|---|---|
| 01 Factura, 07 NC, 08 ND | Sí | Sí — SOAP sendBill, CDR inmediato. |
| 03 Boleta | Sí | Sí — Resumen Diario de una línea, asíncrono (ver Firmar y enviar). |
| 09/31 Guía de Remisión | Sí | Sí — API REST GRE con OAuth2 del emisor, asíncrono. |
Certificado con el que se firma
Por defecto (modo: "pse_directo") firmamos con nuestro certificado compartido — no necesitas subir nada. Si prefieres usar el certificado propio de tu cliente para un RUC puntual, súbelo con POST /companies/{id}/certificado (ver Empresas).
Autenticación CPE
El token que usas contra /cpe/* para firmar/enviar comprobantes de una empresa puntual — distinto del token de cuenta que administra tus empresas (ver Autenticación de cuenta, en Gestión de empresas).
Obtener el token corto
POST/auth/cpe/token — pide un token de 10 minutos para firmar/enviar en nombre de una empresa puntual. Mismos nombres de campo que Smart PSE, si vienes de ahí.
| Nombre | Requerido | Descripción |
|---|---|---|
usuario | Sí | usuario_secundaria de credenciales_cpe (te lo dimos al crear la empresa). |
password | Sí | token_acceso de credenciales_cpe. |
curl -X POST https://mblapirest.com/pse-api/v1/auth/cpe/token \
-H "Content-Type: application/json" \
-d '{"usuario":"a1b2c3d4e5f6...","password":"9f8e7d6c..."}'
{ "token_acceso": "eyJlbXByZXNhX2lkIjoxMiwiZXhwIjoxNzM4NTAwMDAwfQ.3f9a1c..." }
Úsalo igual que el token de cuenta, en la cabecera Authorization: Bearer, contra /cpe/generar o /cpe/procesar. Vencido a los 10 minutos: si te da 401, vuelve a pedir uno.
Errores de autenticación
| Código | Motivo |
|---|---|
401 — Token invalido o vencido | El token corto expiró (10 min) o la firma no coincide. |
401 — Credenciales invalidas | usuario/password incorrectos en /auth/cpe/token. |
Solo firmar — cpe/generar
POST/cpe/generar (o /cpe/generar-demo para pruebas) — SOLO firma el XML que le mandes, no lo transmite a SUNAT. Sirve para cualquier tipo de comprobante, incluidas boletas y guías. Usa tu token corto de empresa.
Parámetros
| Nombre | Requerido | Descripción |
|---|---|---|
nombre_archivo | Sí | Nombre base del comprobante, sin extensión (ej. 20123456789-01-F001-123). |
contenido_archivo | Sí | XML UBL 2.1 sin firmar del comprobante, en base64. Tú lo generas. |
curl -X POST https://mblapirest.com/pse-api/v1/cpe/generar \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{
"nombre_archivo": "20123456789-01-F001-123",
"contenido_archivo": "PD94bWwgdmVyc2lvbj0i..."
}'
Respuesta
{
"estado": 200,
"mensaje": "XML firmado correctamente.",
"xml": "PD94bWwgdmVyc2lvbj0i...",
"codigo_hash": "abc123..."
}
| Campo | Descripción |
|---|---|
xml | El mismo XML, ya firmado (XMLDSig), en base64. |
codigo_hash | El DigestValue de la firma. |
pse_directo) o el propio que hayas subido — ver Empresas. En ningún caso este endpoint transmite nada a SUNAT: la transmisión es /cpe/procesar.Errores comunes
| Código | Motivo |
|---|---|
| 401 | Token corto inválido o vencido (10 min). |
| 422 | nombre_archivo/contenido_archivo faltantes, base64 inválido, o no hay certificado con el cual firmar. |
| 502 | Error al firmar (certificado corrupto, contraseña incorrecta, etc.). |
Firmar + Enviar — cpe/procesar
POST/cpe/procesar (o /cpe/procesar-demo para pruebas) — firma el XML y lo transmite a SUNAT en la misma llamada. Usa tu token corto de empresa.
Parámetros comunes
| Nombre | Requerido | Descripción |
|---|---|---|
nombre_archivo | Sí | Nombre base del comprobante, sin extensión. |
contenido_archivo | Sí | XML UBL 2.1 sin firmar, en base64. |
tipo_documento | Sí | 01 Factura, 07 NC, 08 ND, 03 Boleta, 09/31 Guía de Remisión. |
sol_user | Sí | Usuario SOL secundario del RUC emisor. |
sol_password | Sí | Clave SOL de ese usuario. |
Factura, Nota de Crédito, Nota de Débito (01/07/08)
Envío directo por SOAP sendBill — la respuesta trae el CDR de SUNAT en la misma llamada.
curl -X POST https://mblapirest.com/pse-api/v1/cpe/procesar \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{
"nombre_archivo": "20123456789-01-F001-123",
"contenido_archivo": "PD94bWwgdmVyc2lvbj0i...",
"tipo_documento": "01",
"sol_user": "MIUSUARIO",
"sol_password": "miclavesol"
}'
{
"estado": 200,
"mensaje": "La Factura numero F001-123, ha sido aceptada",
"xml_firmado": "PD94bWwgdmVyc2lvbj0i...",
"cdr": "UEsDBBQA...",
"rechazado": false
}
rechazado: true cuando SUNAT devuelve un CDR de rechazo — sigue viniendo en cdr, con el motivo en mensaje.
Boleta (03)
SUNAT no acepta boletas por sendBill: se informan vía Resumen Diario (RC), que es asíncrono (SUNAT devuelve un ticket, el CDR se consulta después). Aquí se arma un RC de una sola boleta por llamada — no hace falta acumular varias del día en el mismo resumen. Los datos de la línea (moneda, cliente, desglose de impuestos) se leen directamente del XML que mandas: no hay campos adicionales que llenar.
Mismos parámetros que arriba, con tipo_documento: "03". La respuesta espera hasta ~8 segundos por el resultado del ticket:
{
"estado": 200,
"mensaje": "...",
"xml_firmado": "PD94bWwgdmVyc2lvbj0i...",
"ticket": "2026090200001234",
"cdr": "UEsDBBQA...",
"rechazado": false
}
ticket pero sin cdr (estado: 0). Vuelve a consultar ese mismo ticket con /cpe/consultar-ticket hasta obtener el CDR.Guía de Remisión (09/31)
SUNAT tampoco acepta guías por SOAP: usan su API REST GRE ("GRE 2.0"), autenticada con OAuth2 del propio RUC emisor — mismo criterio que la Clave SOL: nunca credenciales nuestras. Por eso el cuerpo exige dos campos más:
| Nombre | Requerido | Descripción |
|---|---|---|
client_id_sunat | Sí (solo guías) | Client ID OAuth2 del RUC emisor, generado en SOL > API SUNAT > Gestión de Credenciales. |
client_secret_sunat | Sí (solo guías) | Client Secret de esa misma credencial. |
curl -X POST https://mblapirest.com/pse-api/v1/cpe/procesar \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{
"nombre_archivo": "20123456789-09-T001-45",
"contenido_archivo": "PD94bWwgdmVyc2lvbj0i...",
"tipo_documento": "09",
"sol_user": "MIUSUARIO",
"sol_password": "miclavesol",
"client_id_sunat": "...",
"client_secret_sunat": "..."
}'
También asíncrono (ticket + espera acotada), misma forma de respuesta que boletas — consulta el ticket con /cpe/consultar-ticket.
/cpe/procesar con tipo_documento: "09" o "31".Errores comunes
| Código | Motivo |
|---|---|
| 401 | Token corto inválido o vencido (10 min). |
| 422 | Campos faltantes, tipo_documento no reconocido, falta client_id_sunat/client_secret_sunat en una guía, o no hay certificado con el cual firmar. |
| 502 | Error al firmar, o SUNAT no aceptó el envío (credenciales SOL/OAuth2 incorrectas, XML mal formado, etc. — el detalle viene en mensaje). |
Gestión de lo ya emitido
Tres endpoints para lo que pasa después de emitir: anular, recuperar un CDR perdido, o consultar un envío asíncrono que quedó "en proceso". Usa tu token corto de empresa.
Anular un comprobante (Comunicación de Baja)
POST/cpe/anular (o /cpe/anular-demo)
Igual que factura/NC/ND: tú armas el XML UBL completo (VoidedDocuments) declarando qué comprobante anulas y por qué — nosotros solo lo firmamos y enviamos. Es asíncrono (ticket + espera acotada), mismo mecanismo que el Resumen Diario de boletas.
| Nombre | Requerido | Descripción |
|---|---|---|
nombre_archivo | Sí | Nombre base, sin extensión. |
contenido_archivo | Sí | XML de la Comunicación de Baja (UBL VoidedDocuments), sin firmar, en base64. |
sol_user / sol_password | Sí | Clave SOL del RUC emisor. |
curl -X POST https://mblapirest.com/pse-api/v1/cpe/anular \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{"nombre_archivo":"20123456789-RA-20260902-1","contenido_archivo":"PD94bWwg...","sol_user":"...","sol_password":"..."}'
{
"estado": 200,
"mensaje": "...",
"xml_firmado": "PD94bWwg...",
"ticket": "2026090200005678",
"cdr": "UEsDBBQA...",
"rechazado": false
}
Consultar un ticket pendiente
POST/cpe/consultar-ticket
Cuando una boleta, anulación o guía quedó "en proceso" (sin cdr en la respuesta original), vuelve a consultar el mismo ticket aquí.
| Nombre | Requerido | Descripción |
|---|---|---|
ticket | Sí | El que te devolvió /cpe/procesar o /cpe/anular. |
tipo_documento | Sí | 03 boleta, RA anulación, 09/31 guía. |
sol_user / sol_password | Sí | Clave SOL del RUC emisor. |
client_id_sunat / client_secret_sunat | Sí, solo guías | Mismas credenciales OAuth2 que usaste al procesar la guía. |
curl -X POST https://mblapirest.com/pse-api/v1/cpe/consultar-ticket \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{"ticket":"2026090200001234","tipo_documento":"03","sol_user":"...","sol_password":"..."}'
Misma forma de respuesta que el envío original: si sigue en proceso, estado: 0 sin cdr; si ya resolvió, trae cdr y rechazado.
Recuperar el CDR de una factura, NC o ND
POST/cpe/recuperar-cdr
Solo para 01/07/08 (envío inmediato por sendBill) — si perdiste la respuesta de /cpe/procesar, la vuelves a pedir por serie y número. Boletas, guías y anulaciones son asíncronas: para esas usa /cpe/consultar-ticket con el ticket.
| Nombre | Requerido | Descripción |
|---|---|---|
tipo_documento | Sí | 01, 07 u 08. |
serie / numero | Sí | Del comprobante ya enviado. |
sol_user / sol_password | Sí | Clave SOL del RUC emisor. |
curl -X POST https://mblapirest.com/pse-api/v1/cpe/recuperar-cdr \
-H "Authorization: Bearer TU_TOKEN_CORTO" -H "Content-Type: application/json" \
-d '{"tipo_documento":"01","serie":"F001","numero":123,"sol_user":"...","sol_password":"..."}'
{
"estado": "aceptado",
"mensaje": "El comprobante existe y esta aceptado.",
"cdr": "UEsDBBQA...",
"rechazado": false
}
estado puede ser aceptado, rechazado, anulado, no_existe o error.
Autenticación de cuenta
Dos niveles de credenciales, uno arriba del otro:
| Nivel | Qué autoriza | Cómo se obtiene |
|---|---|---|
| Token de cuenta | Administrar tus empresas (RUC): POST/GET/PUT/PATCH/DELETE /companies. | Alta manual de tu cuenta de revendedor. Se muestra en texto plano una sola vez (visible después desde tu panel, en Mi cuenta). |
| Token corto de empresa | Firmar/enviar comprobantes de esa empresa: /cpe/*. Ver Autenticación CPE. | POST /auth/cpe/token, usando las credenciales_cpe que te dieron al crear la empresa. |
Cómo se usa
Se envía en la cabecera Authorization:
curl https://mblapirest.com/pse-api/v1/companies \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA"
Errores de autenticación
| Código | Motivo |
|---|---|
401 — Token de cuenta invalido | El Bearer contra /companies no es un token de cuenta activo. |
Empresas
Cada RUC de tu cliente es una "empresa" en tu cuenta. Todos estos endpoints usan tu token de cuenta.
Registrar un RUC
POST/companies
Idempotente por RUC: si ese RUC ya está registrado en tu cuenta, actualiza en vez de duplicar (para cambiar de ambiente, ver también el PUT más abajo).
| Nombre | Requerido | Descripción |
|---|---|---|
ruc | Sí | 11 dígitos. |
razon_social | Opcional | Referencial, para tus propios registros. |
environment | Opcional | demo (por defecto) o produccion. |
curl -X POST https://mblapirest.com/pse-api/v1/companies \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA" -H "Content-Type: application/json" \
-d '{"ruc":"20123456789","razon_social":"Mi Cliente S.A.C.","environment":"demo"}'
{
"data": {
"id": 12,
"ruc": "20123456789",
"razon_social": "Mi Cliente S.A.C.",
"modo": "pse_directo",
"environment": "demo",
"credenciales_cpe": {
"usuario_secundaria": "a1b2c3d4e5f6...",
"token_acceso": "9f8e7d6c..."
}
}
}
credenciales_cpe solo se devuelve en esta respuesta (al crear). Guárdala — no se vuelve a mostrar en GET /companies ni en el PUT, igual que el token de cuenta.Listar tus empresas
GET/companies
curl https://mblapirest.com/pse-api/v1/companies \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA"
{ "data": [ { "id": 12, "ruc": "20123456789", "razon_social": "Mi Cliente S.A.C.", "modo": "pse_directo", "environment": "demo" } ] }
Ver una empresa
GET/companies/{id}
curl https://mblapirest.com/pse-api/v1/companies/12 \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA"
{ "data": { "id": 12, "ruc": "20123456789", "razon_social": "Mi Cliente S.A.C.", "modo": "pse_directo", "environment": "demo" } }
Cambiar ambiente o razón social
PUT/companies/{id}
Por ahora solo actualiza environment y/o razon_social — el ambiente es un atributo mutable de la empresa, no una empresa nueva.
curl -X PUT https://mblapirest.com/pse-api/v1/companies/12 \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA" -H "Content-Type: application/json" \
-d '{"environment":"produccion"}'
Activar / desactivar
PATCH/companies/{id}/activation — sin body.
Alterna el estado entre activo e inactivo. Una empresa inactiva no puede pedir token corto ni firmar — /auth/cpe/token y todo /cpe/* le responden 401.
curl -X PATCH https://mblapirest.com/pse-api/v1/companies/12/activation \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA"
{ "mensaje": "Empresa INACTIVO", "data": { "id": 12, "ruc": "20123456789", ... } }
Eliminar una empresa
DELETE/companies/{id}
Borra la empresa y sus credenciales_cpe de forma definitiva — no se puede deshacer. Los documentos que ya firmaste con ella quedan intactos en tu historial (guardan su propio RUC/serie/número), pero ya no podrás firmar ni consultar tickets a nombre de esa empresa.
curl -X DELETE https://mblapirest.com/pse-api/v1/companies/12 \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA"
{ "mensaje": "Empresa eliminada" }
Subir certificado propio
POST/companies/{id}/certificado — multipart/form-data.
Opcional. Sin esto, esta empresa firma con nuestro certificado compartido (modo: "pse_directo"). Si tu cliente tiene su propio certificado y prefieres usarlo solo para él, súbelo aquí — pasa a modo: "propio".
| Campo | Requerido | Descripción |
|---|---|---|
certificado | Sí | Archivo .pfx o .p12. |
password_certificado | Depende | Contraseña del certificado, si la tiene. |
curl -X POST https://mblapirest.com/pse-api/v1/companies/12/certificado \
-H "Authorization: Bearer TU_TOKEN_DE_CUENTA" \
-F "certificado=@/ruta/certificado.pfx" \
-F "password_certificado=mi_clave"
Referencia de endpoints y errores
Todos los endpoints en una sola tabla, más el significado de cada campo de respuesta y los códigos de error — para integrar sin tener que ir sección por página ni escribirnos.
Todos los endpoints
| Método | Ruta | Auth | Para qué |
|---|---|---|---|
| POST | /companies | Token de cuenta | Registrar un RUC (empresa) en tu cuenta |
| GET | /companies | Token de cuenta | Listar tus empresas |
| GET | /companies/{id} | Token de cuenta | Ver una empresa |
| PUT | /companies/{id} | Token de cuenta | Cambiar ambiente o razón social |
| PATCH | /companies/{id}/activation | Token de cuenta | Activar / desactivar |
| DELETE | /companies/{id} | Token de cuenta | Eliminar empresa (definitivo) |
| POST | /companies/{id}/certificado | Token de cuenta | Subir certificado propio (multipart) |
| POST | /auth/cpe/token | credenciales_cpe | Obtener el token corto (10 min) de una empresa |
| POST | /cpe/generar / -demo | Token corto | Solo firmar (Flujo B) — cualquier tipo de documento |
| POST | /cpe/procesar / -demo | Token corto | Firmar y enviar a SUNAT (Flujo A) — 01/07/08/03/09/31 |
| POST | /cpe/anular / -demo | Token corto | Comunicación de Baja (anular un comprobante) |
| POST | /cpe/consultar-ticket | Token corto | Resultado de un envío asíncrono (03 / RA / 09 / 31) que quedó en proceso |
| POST | /cpe/recuperar-cdr | Token corto | Recuperar el CDR de una 01/07/08 ya enviada |
https://mblapirest.com/pse-api/v1. Ejemplo completo: https://mblapirest.com/pse-api/v1/cpe/procesar.Campos de la respuesta
| Campo | Aparece en | Significado |
|---|---|---|
estado | Todas | 200 aceptado por SUNAT. 0 todavía en proceso (asíncrono) o no llegó a SUNAT (ver mensaje). Cualquier otro número es el código de rechazo de SUNAT (rango 2xxx/3xxx). |
mensaje | Todas | Descripción legible del estado — el texto que SUNAT (o nosotros) devolvimos. |
rechazado | Todas | true solo cuando SUNAT ya evaluó el comprobante y lo rechazó. false con estado: 0 significa "todavía no hay resultado", no "aceptado". |
xml / xml_firmado | /cpe/generar, /cpe/procesar, /cpe/anular | El XML que enviaste, ya firmado, en base64. Guárdalo: es tu comprobante firmado aunque SUNAT rechace. |
codigo_hash | /cpe/generar | El DigestValue de la firma — el hash que también va impreso en la representación impresa (PDF/QR). |
ticket | Boletas (03), anulación (RA), guías (09/31) | Identificador para volver a consultar con /cpe/consultar-ticket mientras no llegue el cdr. |
cdr | Cuando SUNAT ya resolvió | La Constancia de Recepción de SUNAT, en base64 (ZIP). Es el respaldo legal — guárdalo siempre que venga, aceptado o rechazado. |
credenciales_cpe | POST /companies (solo al crear) | usuario_secundaria + token_acceso de esa empresa. No se vuelve a mostrar en GET/PUT — guárdalo en ese momento. |
Facturas/NC/ND (01/07/08) vs. boletas/anulación/guías (03/RA/09/31)
Los primeros tres van por sendBill: la respuesta de /cpe/procesar ya trae cdr de una vez, aceptado o rechazado. Los otros cuatro son asíncronos — SUNAT los procesa aparte, así que /cpe/procesar (o /cpe/anular) solo confirma el envío y devuelve un ticket; nosotros esperamos hasta 8 segundos por si resuelve rápido, pero si sigue en proceso tu sistema debe volver a consultar ese ticket con /cpe/consultar-ticket más tarde. Si tu sistema no lo hace, el documento se queda "en proceso" indefinidamente aunque SUNAT ya lo haya resuelto — es la causa más común de comprobantes que parecen atascados.
Códigos HTTP de error
| HTTP | Causa |
|---|---|
401 | Token de cuenta o token corto inválido, vencido, o inexistente. |
404 | La empresa del {id} no existe o no pertenece a tu cuenta. |
402 | La cuenta agotó el pool de documentos de su plan (si tienes uno con límite asignado) — contacta a soporte para ampliarlo. |
422 | Datos inválidos: falta un campo obligatorio, el ruc no tiene 11 dígitos, contenido_archivo no es base64 válido, el tipo_documento no está soportado, o no hay certificado con el cual firmar. |
500 | Error interno guardando datos o generando el ZIP — repórtalo por soporte si se repite. |
502 | No se pudo contactar a SUNAT (o al firmador). Reintenta con espera progresiva — no es un rechazo de SUNAT, es que la llamada nunca llegó. |
401/402/404/422/500/502 siempre traen {"mensaje": "..."} con el detalle exacto — no hace falta adivinar, el texto ya dice qué falta o qué está mal.Errores más comunes al integrar
| Mensaje | Causa | Cómo evitarlo |
|---|---|---|
| "sol_user y sol_password ... son obligatorios" | Falta la Clave SOL del RUC emisor en el cuerpo. | Siempre va la Clave SOL de tu cliente, nunca una credencial nuestra ni de un PSE — transmitimos con la identidad del propio contribuyente. |
| "Las guías (09/31) ademas requieren client_id_sunat y client_secret_sunat" | Falta el OAuth2 de SUNAT para GRE. | Se genera en SOL del RUC emisor → API SUNAT → Gestión de Credenciales, con el scope de Guías de Remisión. Ver Firmar y enviar. |
| "No hay certificado con el cual firmar" | La empresa no tiene certificado propio ni PSE Directo tiene uno cargado. | Sube uno con POST /companies/{id}/certificado, o confirma con soporte que PSE Directo está activo para tu cuenta. |
| "contenido_archivo no es un base64 valido" | El XML no se codificó bien, o se mandó ya en base64 doble. | Codifica el XML crudo (UTF-8) en base64 una sola vez. |
| "tipo_documento debe ser uno de: 01, 07, 08, 03, 09, 31" | Tipo no soportado por /cpe/procesar en esta versión. | Notas de crédito/débito van igual que factura (01/07/08). Para cualquier otro tipo, usa /cpe/generar (solo firma) y envía tú mismo. |
| "Se agoto el pool de documentos de tu plan..." | HTTP 402 — la cuenta llegó al límite de su plan asignado. | Revisa el consumo en tu panel (Mi cuenta → Pool de documentos) y pide ampliar el plan por soporte. |
Consumo
Cada empresa activa consume contra el plan de tu cuenta. Revisa el consumo y el historial de documentos firmados/enviados en tu panel: Mi cuenta → Documentos / Reportes.
Última actualización: 03/09/2026