PSEDocumentación
API REST · PSE Autorizado SUNAT

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.

Es un servicio distinto al de Emisión de comprobantes: aquella es para tu propia cuenta (un solo RUC, autenticación 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

  1. Pídenos que activemos tu cuenta de revendedor. Te entregamos un token de cuenta una sola vez — guárdalo, no se vuelve a mostrar.
  2. Con ese token, registra cada RUC de tu cliente: POST /companies. La respuesta trae las credenciales_cpe de esa empresa (también una sola vez).
  3. Con esas credenciales, pide un token corto de firma: POST /auth/cpe/token.
  4. Con el token corto, firma (POST /cpe/generar) o firma y envía a SUNAT (POST /cpe/procesar) cada comprobante.
  5. 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 NDSí — SOAP sendBill, CDR inmediato.
03 BoletaSí — Resumen Diario de una línea, asíncrono (ver Firmar y enviar).
09/31 Guía de RemisiónSí — 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).

Quien sea que firme, la transmisión a SUNAT siempre se hace con la Clave SOL del propio RUC emisor (nunca con credenciales nuestras): es deliberado, evita el rechazo SUNAT [0154] "el proveedor no está autorizado a enviar comprobantes del contribuyente".

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í.

NombreRequeridoDescripción
usuariousuario_secundaria de credenciales_cpe (te lo dimos al crear la empresa).
passwordtoken_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ódigoMotivo
401 — Token invalido o vencidoEl token corto expiró (10 min) o la firma no coincide.
401 — Credenciales invalidasusuario/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

NombreRequeridoDescripción
nombre_archivoNombre base del comprobante, sin extensión (ej. 20123456789-01-F001-123).
contenido_archivoXML 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..."
}
CampoDescripción
xmlEl mismo XML, ya firmado (XMLDSig), en base64.
codigo_hashEl DigestValue de la firma.
Con qué certificado firma depende de la empresa: el compartido (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ódigoMotivo
401Token corto inválido o vencido (10 min).
422nombre_archivo/contenido_archivo faltantes, base64 inválido, o no hay certificado con el cual firmar.
502Error 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.

La transmisión siempre usa la Clave SOL del propio RUC emisor — nunca credenciales nuestras. Por diseño: transmitir con credenciales de un PSE en vez de las del contribuyente termina en el rechazo SUNAT [0154] ("el proveedor no está autorizado a enviar comprobantes del contribuyente").

Parámetros comunes

NombreRequeridoDescripción
nombre_archivoNombre base del comprobante, sin extensión.
contenido_archivoXML UBL 2.1 sin firmar, en base64.
tipo_documento01 Factura, 07 NC, 08 ND, 03 Boleta, 09/31 Guía de Remisión.
sol_userUsuario SOL secundario del RUC emisor.
sol_passwordClave 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
}
Si SUNAT sigue procesando el resumen pasados los ~8s, la respuesta llega igual con 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:

NombreRequeridoDescripción
client_id_sunatSí (solo guías)Client ID OAuth2 del RUC emisor, generado en SOL > API SUNAT > Gestión de Credenciales.
client_secret_sunatSí (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.

La afiliación a este servicio no exime del trámite en SOL: cada RUC que emita guías necesita generar sus propias credenciales OAuth2 antes de poder usar /cpe/procesar con tipo_documento: "09" o "31".

Errores comunes

CódigoMotivo
401Token corto inválido o vencido (10 min).
422Campos faltantes, tipo_documento no reconocido, falta client_id_sunat/client_secret_sunat en una guía, o no hay certificado con el cual firmar.
502Error 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.

NombreRequeridoDescripción
nombre_archivoNombre base, sin extensión.
contenido_archivoXML de la Comunicación de Baja (UBL VoidedDocuments), sin firmar, en base64.
sol_user / sol_passwordClave 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í.

NombreRequeridoDescripción
ticketEl que te devolvió /cpe/procesar o /cpe/anular.
tipo_documento03 boleta, RA anulación, 09/31 guía.
sol_user / sol_passwordClave SOL del RUC emisor.
client_id_sunat / client_secret_sunatSí, solo guíasMismas 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.

NombreRequeridoDescripción
tipo_documento01, 07 u 08.
serie / numeroDel comprobante ya enviado.
sol_user / sol_passwordClave 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:

NivelQué autorizaCómo se obtiene
Token de cuentaAdministrar 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 empresaFirmar/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"
Solo se guarda hasheado (SHA-256) de nuestro lado como fuente de verdad — si lo pierdes, regenéralo desde tu panel (Mi cuenta → Regenerar token).

Errores de autenticación

CódigoMotivo
401 — Token de cuenta invalidoEl 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).

NombreRequeridoDescripción
ruc11 dígitos.
razon_socialOpcionalReferencial, para tus propios registros.
environmentOpcionaldemo (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".

CampoRequeridoDescripción
certificadoArchivo .pfx o .p12.
password_certificadoDependeContraseñ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"
Se valida vigencia y contraseña antes de guardarlo: si el certificado está vencido o la contraseña no coincide, la subida se rechaza con el detalle del error.

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étodoRutaAuthPara qué
POST/companiesToken de cuentaRegistrar un RUC (empresa) en tu cuenta
GET/companiesToken de cuentaListar tus empresas
GET/companies/{id}Token de cuentaVer una empresa
PUT/companies/{id}Token de cuentaCambiar ambiente o razón social
PATCH/companies/{id}/activationToken de cuentaActivar / desactivar
DELETE/companies/{id}Token de cuentaEliminar empresa (definitivo)
POST/companies/{id}/certificadoToken de cuentaSubir certificado propio (multipart)
POST/auth/cpe/tokencredenciales_cpeObtener el token corto (10 min) de una empresa
POST/cpe/generar / -demoToken cortoSolo firmar (Flujo B) — cualquier tipo de documento
POST/cpe/procesar / -demoToken cortoFirmar y enviar a SUNAT (Flujo A) — 01/07/08/03/09/31
POST/cpe/anular / -demoToken cortoComunicación de Baja (anular un comprobante)
POST/cpe/consultar-ticketToken cortoResultado de un envío asíncrono (03 / RA / 09 / 31) que quedó en proceso
POST/cpe/recuperar-cdrToken cortoRecuperar el CDR de una 01/07/08 ya enviada
Todas las rutas van bajo https://mblapirest.com/pse-api/v1. Ejemplo completo: https://mblapirest.com/pse-api/v1/cpe/procesar.

Campos de la respuesta

CampoAparece enSignificado
estadoTodas200 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).
mensajeTodasDescripción legible del estado — el texto que SUNAT (o nosotros) devolvimos.
rechazadoTodastrue 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/anularEl XML que enviaste, ya firmado, en base64. Guárdalo: es tu comprobante firmado aunque SUNAT rechace.
codigo_hash/cpe/generarEl DigestValue de la firma — el hash que también va impreso en la representación impresa (PDF/QR).
ticketBoletas (03), anulación (RA), guías (09/31)Identificador para volver a consultar con /cpe/consultar-ticket mientras no llegue el cdr.
cdrCuando 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_cpePOST /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

HTTPCausa
401Token de cuenta o token corto inválido, vencido, o inexistente.
404La empresa del {id} no existe o no pertenece a tu cuenta.
402La cuenta agotó el pool de documentos de su plan (si tienes uno con límite asignado) — contacta a soporte para ampliarlo.
422Datos 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.
500Error interno guardando datos o generando el ZIP — repórtalo por soporte si se repite.
502No se pudo contactar a SUNAT (o al firmador). Reintenta con espera progresiva — no es un rechazo de SUNAT, es que la llamada nunca llegó.
Los errores 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

MensajeCausaCó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.

¿Algo no está en esta página? Escríbenos por WhatsApp desde tu panel (botón Soporte) — si es un caso recurrente, lo agregamos aquí.

Última actualización: 03/09/2026