Resellers: operar tu panel por API
Un reseller puede hacer por API lo mismo que hace en su panel: crear y administrar a sus clientes, sus planes, sus liquidaciones y su configuración. Cada operación usa la misma ruta, el mismo método y la misma respuesta que el panel — no existe un prefijo ni una copia de las rutas para máquina — así que todo lo que ves en Swagger para el panel del reseller es también la referencia por API.
Lo que una credencial no alcanza: el interior de una empresa cliente (sus documentos, sus contactos, su
configuración — eso sigue siendo de personas), la API de documentos tributarios con el slug de tu propio tenant, y
cualquier cliente que no sea tuyo. Fuera de esos límites, la credencial de escritura hace todo lo que hace un
RESELLER_FULL_ACCESS en el panel.
Crear una credencial en el panel
Sección titulada «Crear una credencial en el panel»En tu panel, en Reseller → Credenciales de API (/tu-tenant/reseller/credenciales), sólo el rol
RESELLER_FULL_ACCESS ve esta pantalla y puede crear, renombrar y revocar. Al crear eliges:
- Nombre — de 3 a 191 caracteres, para reconocerla en la lista.
- Tipo —
lecturaoescritura. - Entorno —
pruebaoreal. - Vencimiento — opcional, en el futuro.
La respuesta de crear es la única que trae el secreto: cópialo antes de cerrar el diálogo, porque no se vuelve a mostrar. Si lo pierdes, no hay forma de recuperarlo — tienes que revocar esa credencial y crear otra.
Tienes a lo más cuatro credenciales vigentes: una de lectura y una de escritura en real, y una de cada una en
prueba. Si ya tienes una vigente del mismo tipo y entorno, crear otra responde 409 CREDENCIAL_VIGENTE_EXISTE
con «ya tienes una credencial de escritura de real vigente; revócala para crear otra», y no se crea nada.
Rotar una credencial es revocar la vigente y crear otra — no existe una operación que regenere el secreto ni que le cambie el vencimiento a la que ya tienes. Entre que revocas y creas la nueva hay un corte: ninguna llamada con la credencial vieja funciona mientras no actualices tu sistema con la nueva. Planifica ese corte antes de rotar en producción.
Renombrar sólo cambia el nombre que ves en la lista; no afecta el secreto ni el vencimiento. Renombrar una credencial revocada responde 409 CREDENCIAL_REVOCADA. Revocar una que ya está revocada no falla: devuelve
la credencial tal como quedó, sin cambiarla.
Crear una credencial con el CLI
Sección titulada «Crear una credencial con el CLI»Con el CLI de REDCUMBRE y tu propia sesión (necesitas el rol
RESELLER_FULL_ACCESS en la empresa), el mismo flujo está disponible desde la terminal:
redcumbre reseller credenciales listar [--empresa <slug>]
redcumbre reseller credenciales crear \ --tipo lectura|escritura \ --entorno prueba|real \ --nombre "<nombre de la credencial>" \ [--vence 2027-12-31] \ [--empresa <slug>]
redcumbre reseller credenciales revocar <id> [--empresa <slug>]--empresa es opcional si corres el comando dentro de un proyecto ya conectado con redcumbre init: el CLI usa
la empresa de ese proyecto.
Al crear, el secreto nunca se imprime en la terminal: el CLI lo escribe directo en
keys/reseller-<empresa>-<tipo>-<entorno>.json (con permisos 0600, igual que cualquier llave que descargas desde
el panel) y la salida sólo te dice la ruta del archivo. listar nunca trae el secreto de ninguna credencial.
Prueba y producción
Sección titulada «Prueba y producción»Con una credencial de prueba, nada de lo que haces toca datos reales:
- Las lecturas devuelven siempre el mismo conjunto de ejemplo, igual para todo reseller: tres clientes
(
ejemplo-panaderia-el-sol, activo con plan asignado;ejemplo-taller-los-andes, suspendido; yejemplo-consultora-sur, en preactivación sin plan), dos planes retail (ejemplo-retail-basicoyejemplo-retail-plus), tres liquidaciones (dos emitidas a los dos primeros clientes y una recibida de REDCUMBRE), su auditoría, sus métricas de uso, la configuración del reseller de ejemplo y un SaaS externo de ejemplo con su plan y su suscripción. Todos los identificadores de este conjunto son negativos y todos los slugs empiezan conejemplo-: se reconocen a simple vista. - Las escrituras se validan igual que en producción y rechazan lo mismo, pero no persisten nada: la respuesta es la que recibirías si la operación hubiera ocurrido, sin crear ni cambiar una fila, sin cobrar, y sin avisar a ZITADEL, Lago, al SII, a ValidaFirma ni por correo. La única excepción es la propia clave de repetición: repetir la misma escritura con la misma clave devuelve la misma respuesta.
- Un identificador o un slug que pertenece a un cliente real responde como inexistente — la credencial de prueba nunca ve ni toca tus datos reales.
- Una operación que no tiene un comportamiento de ejemplo definido responde
400 OPERACION_NO_DISPONIBLE_EN_PRUEBA.
Con una credencial de real, cada llamada opera sobre tus clientes, tus planes y tus liquidaciones de verdad, con los mismos efectos — correos, cobros, documentos al SII — que la misma acción hecha por una persona en el panel.
Leer el DTE completo de una liquidación emitida
Sección titulada «Leer el DTE completo de una liquidación emitida»El detalle de una liquidación trae, por cada documento tributario asociado, su tipo, folio, estado, monto y —sólo si el documento lo emitiste tú— el identificador del DTE. Con ese identificador lees el documento completo (detalle y archivos) por la API de documentos tributarios que ya usas para tus propios DTE, con una llave de máquina de tu propio tenant:
GET /tu-tenant/dte/:id— el detalle del documento.GET /tu-tenant/dte/:id/archivos— sus archivos (PDF, XML, etc).
Esto vale sólo para las liquidaciones donde tú emites el documento (las que le facturas a tu cliente). En una liquidación recibida —la que REDCUMBRE te liquida a ti— el documento trae tipo, folio, estado y monto, pero sin identificador del DTE: ese documento está en el tenant de REDCUMBRE y no hay una vía de máquina para leerlo completo.
Para descargar directamente el PDF de la liquidación (no del DTE, sino del documento de liquidación en sí),
usa GET /tu-tenant/liquidaciones/:id/pdf con la misma credencial — ver «Tope de llamadas» más abajo por su límite
propio.
Qué credencial necesita cada operación
Sección titulada «Qué credencial necesita cada operación»Toda lectura (GET) acepta las dos credenciales, de lectura y de escritura. Cualquier otro método —crear, editar,
suspender, confirmar, emitir— exige la credencial de escritura; con la de lectura responde 403.
Cada operación del Swagger declara su credencial mínima en la extensión
x-rcapi-credencial, con el valor lectura (que una credencial de escritura también satisface) o escritura.
Tope de llamadas
Sección titulada «Tope de llamadas»Cada credencial tiene un tope de 10.000 llamadas por hora del reloj (zona America/Santiago), contando
lecturas y escrituras por igual. Al superarlo, la llamada responde 429 LIMITE_EXCEDIDO sin ejecutarse, con las
cabeceras Retry-After, X-RateLimit-Limit y X-RateLimit-Remaining. Si el contador no se puede verificar en ese
momento, la respuesta es 503 TOPE_NO_VERIFICABLE, también sin ejecutar la operación. Este tope no tiene
excepción ni en desarrollo: cuenta siempre, y nunca aplica a una persona operando desde el panel.
Descargar el PDF de una liquidación tiene su propio límite, más estrecho: 120 descargas por hora por
credencial. Al superarlo, responde 429 DOWNLOAD_RATE_LIMIT_EXCEEDED. El panel no tiene este límite.
Clave de repetición
Sección titulada «Clave de repetición»Toda escritura que crea algo o emite un documento —dar de alta un cliente, crear o clonar un plan, asignar o cambiar el plan de un cliente,
registrar tu dominio propio, avisar un certificado reemplazado, confirmar liquidaciones, emitir una nota de crédito o
una refactura, adjuntar un documento, contratar o cambiar de plan una suscripción adicional— exige una
clave de repetición: el campo idempotencyKey en el cuerpo de la solicitud, elegida por tu propio sistema.
- Sin esa clave, por máquina, la operación responde
400 CLAVE_DE_REPETICION_REQUERIDAy no se ejecuta. - Repetir la llamada con la misma clave y los mismos datos devuelve la respuesta de la primera vez, sin volver a ejecutar la operación — así un reintento de red nunca duplica el efecto.
- La misma clave con otros datos responde
409 CLAVE_USADA_CON_OTROS_DATOS. - La misma clave mientras la primera llamada todavía está en curso responde
409 CLAVE_EN_CURSO: reintenta en unos segundos. - Si la primera llamada falló sin producir ningún efecto, repetir la clave vuelve a intentar la operación.
Una clave se conserva al menos 24 horas; pasado ese plazo se trata como si no existiera. El alta de un cliente,
además de la clave, se reconoce por su slug: repetir el alta con el slug de un cliente que ya es tuyo y los
mismos datos devuelve ese mismo cliente (200, sin crear otro); con otros datos responde
409 SLUG_YA_USADO. Las demás escrituras —editar un cliente, cambiar sus servicios, suspender, reactivar, reintentar un DTE de una
liquidación— no necesitan clave: repetirlas deja el mismo resultado.
Reseller suspendido
Sección titulada «Reseller suspendido»Con tu cuenta de reseller suspendida, las credenciales existentes siguen funcionando, pero no se crean nuevas y las
operaciones que hacen crecer tu cartera se rechazan con 403 RESELLER_SUSPENDIDO y el mensaje «tu cuenta de
reseller está suspendida; regulariza tu pago con REDCUMBRE», igual en el panel y por API:
- crear una credencial;
- dar de alta un cliente, o completar uno que estaba en borrador;
- asignar o cambiar el plan de un cliente;
- reactivar un cliente o pasarlo de preactivación a activo;
- cambiar los servicios de un cliente;
- contratar o subir de plan una suscripción adicional, y cancelar una bajada programada de una.
Siguen permitidas todas las lecturas, suspender un cliente, editar un plan que no está asignado, y bajar de plan una suscripción adicional. Cambiar el plan de un cliente, para subirlo o para bajarlo, se rechaza.
Errores
Sección titulada «Errores»| Código HTTP | Código | Cuándo |
|---|---|---|
400 | CLAVE_DE_REPETICION_REQUERIDA | Falta idempotencyKey en una escritura que la exige |
400 | CONTRASENA_TEMPORAL_NO_PERMITIDA | El alta de un cliente trae una contraseña temporal para su usuario inicial — por API cada persona recibe su invitación por correo |
400 | OPERACION_NO_DISPONIBLE_EN_PRUEBA | Esa operación no tiene un comportamiento de ejemplo con una credencial de prueba |
401 | API_KEY_REVOKED | La credencial está revocada |
401 | API_KEY_EXPIRED | La credencial venció |
403 | API_KEY_TENANT_MISMATCH | El slug de la ruta no es el de tu propio tenant |
403 | NO_ES_RESELLER | La empresa no tiene perfil de reseller |
403 | RESELLER_SUSPENDIDO | Tu cuenta de reseller está suspendida (ver arriba qué se bloquea) |
403 | BAJA_SOLO_MASTER | Dar de baja, o cancelar la baja de, una suscripción de ValidaFirma — eso sólo lo hace el MASTER de REDCUMBRE |
403 | — | Credencial de lectura en una escritura, acceso al interior de un cliente, o a la API de documentos tributarios con tu propio slug |
404 | — | Un cliente que no es tuyo, de otro reseller, o una credencial de otro tenant — responde igual que un recurso inexistente |
409 | CREDENCIAL_VIGENTE_EXISTE | Ya tienes una credencial vigente de ese tipo y entorno |
409 | CREDENCIAL_REVOCADA | Renombrar una credencial que ya está revocada |
409 | CORREO_CON_USUARIO | El correo del usuario inicial de un alta ya tiene una cuenta en la plataforma; agrégalo desde el panel |
409 | SLUG_YA_USADO | El slug del alta es de un cliente tuyo que no está en borrador, con datos distintos |
409 | CLAVE_USADA_CON_OTROS_DATOS | La clave de repetición ya se usó con un cuerpo distinto |
409 | CLAVE_EN_CURSO | La primera llamada con esa clave todavía se está ejecutando |
429 | LIMITE_EXCEDIDO | Superaste las 10.000 llamadas por hora de la credencial |
429 | DOWNLOAD_RATE_LIMIT_EXCEEDED | Superaste las 120 descargas de PDF de liquidación por hora |
503 | TOPE_NO_VERIFICABLE | No se pudo verificar el tope de llamadas en ese momento; reintenta |
Los mensajes de error no incluyen el correo, la razón social, el RUT ni la dirección de tu cliente ni de ninguna
persona: nombran al cliente por su slug y a un usuario inicial como «el usuario inicial N». El código del error
(error en el cuerpo de la respuesta) es siempre el mismo con una credencial o con una sesión de persona; sólo
cambia el texto.
Dar de alta un SaaS externo y sus métricas
Sección titulada «Dar de alta un SaaS externo y sus métricas»En tu panel, en Reseller → SaaS externos (/tu-tenant/reseller/saas-externos), sólo el rol RESELLER_FULL_ACCESS crea, renombra y archiva; RESELLER_ADMIN y RESELLER_VIEWER sólo ven. Tu sistema puede hacer lo mismo por API con la credencial de escritura: mismas reglas, mismos límites, mismos rechazos.
Un SaaS externo. POST /{tenantSlug}/reseller/saas-externos con codigo (3 a 40 caracteres: minúsculas, números y guion bajo — no cambia después), nombre y, si quieres, descripcion. Repetir la misma alta con el mismo código y los mismos datos devuelve el SaaS existente (200); con otros datos, 409 CODIGO_YA_USADO. El código de un SaaS archivado no se reusa (409 CODIGO_RESERVADO_POR_ARCHIVADO). Tienes hasta 50 SaaS externos activos; superarlo responde 409 LIMITE_ALCANZADO.
Si es tu primer SaaS y tu plan mayorista no tiene cargo para ninguna de las tres métricas con que REDCUMBRE te cobra (eventos, suscripciones adicionales activas y SaaS conectados), el alta se rechaza con 409 MAYORISTA_SIN_CARGO: pídeselo a REDCUMBRE. Con tu cuenta de reseller suspendida tampoco puedes crear uno nuevo (403 RESELLER_SUSPENDIDO).
Después del alta puedes cambiar el nombre y la descripción (PATCH /{tenantSlug}/reseller/saas-externos/{codigo}); el código no cambia nunca. Archivar (POST .../{codigo}/archivar) es definitivo: se niega mientras el SaaS tenga una suscripción adicional activa, también con una baja programada que todavía no rige (409 SAAS_CON_SUSCRIPCIONES_ACTIVAS); al archivarlo se archivan también sus métricas, y sus eventos ya recibidos se conservan en la vista.
Una métrica propia. Pertenece siempre a un SaaS tuyo. POST /{tenantSlug}/reseller/metricas-propias con codigo, nombre, descripcion opcional, saas (el código del SaaS) y forma: conteo, suma o unico — ver Las formas de conteo. Con forma: "unico" puedes además marcarla recurrente: true; con conteo o suma, recurrente responde 400 RECURRENTE_SOLO_CON_UNICO. El código, el SaaS y la forma no cambian después; sólo el nombre y la descripción son editables. Tienes hasta 50 métricas activas por reseller (409 LIMITE_ALCANZADO), y el mismo código no se reusa si ya está archivado (409 CODIGO_RESERVADO_POR_ARCHIVADO).
Una métrica propia sólo se usa en un plan de suscripción adicional de su propio SaaS: nunca en un plan rCAPI, en el de otro SaaS o en el de otro reseller. Al archivar una métrica recurrente, la respuesta trae el número de identificadores activos que tenía; una recurrente archivada deja de contarse desde el período siguiente.
REDCUMBRE no opera SaaS externos propios: si tu empresa es la reseller REDCUMBRE, esta sección no aplica.
Enviar eventos con la credencial de escritura
Sección titulada «Enviar eventos con la credencial de escritura»POST /{tenantSlug}/reseller/eventos recibe un lote de 1 a 100 eventos de consumo de tus SaaS externos, y es la única operación de esta superficie que sólo acepta una credencial de máquina: ninguna persona —tampoco el MASTER de REDCUMBRE— puede enviarlos desde el panel ni con su sesión; con una sesión de persona responde 403 SOLO_POR_CREDENCIAL. Se acepta sólo con la credencial de escritura; con la de lectura responde 403.
Un lote puede mezclar eventos de distintos SaaS externos tuyos. Cada evento recibe su propio resultado —aceptado, duplicado o rechazado con su motivo— en el mismo orden del lote; un rechazo no cancela el resto. El lote entero se rechaza (400 LOTE_INVALIDO) sólo si está vacío, trae más de 100 eventos o está mal formado (no es JSON, no es un arreglo, etc.).
{ "eventos": [ { "saas": "mesa_ayuda", "metrica": "horas_soporte", "cliente": "panaderia-luna", "evento_id": "E-1", "ocurrido_en": "2026-10-08T14:03:00-03:00", "cantidad": 3 } ]}responde:
{ "resultados": [ { "evento_id": "E-1", "resultado": "aceptado" } ] }Ver la referencia completa de la operación, con más ejemplos de lote y de respuesta, en Swagger.
Las formas de conteo
Sección titulada «Las formas de conteo»Cada métrica propia agrega sus eventos de una sola forma, fija desde que la creas:
conteo— cuenta eventos. Cada evento aceptado suma 1, cualquiera sea su contenido.suma— suma un valor. Cada evento aceptado traecantidad(mayor que 0, hasta 4 decimales) y se suma al período. Ejemplo:horas_soportede «Mesa de ayuda», con eventos de 3 y 2 horas, suma 5 horas en el período.unico— cuenta identificadores distintos dentro del período. Cada evento traeidentificador_contado; el mismo identificador reportado varias veces cuenta una sola vez. Ejemplo:sesiones_portal, con los identificadores «U-17» y «U-22» en el mismo período, cuenta 2, sin importar cuántas veces se reportó cada uno.unicorecurrente — comounico, pero el identificador queda dado de alta hasta que llega su baja, y cuenta en todos los períodos intermedios. Cada evento trae ademásoperacion:altaobaja. Ejemplo: el alta de «U-17» en marzo lo cuenta en marzo, abril y mayo; la baja reportada en mayo hace que deje de contarse desde junio (mayo todavía lo cuenta). Archivar la métrica la deja de contar desde el período siguiente.
Sólo una métrica de forma unico puede ser recurrente; conteo y suma nunca.
Los campos de un evento
Sección titulada «Los campos de un evento»Cada evento del lote admite exactamente estos campos — cualquier otro responde rechazado con CAMPO_NO_ADMITIDO y el nombre del campo que sobra:
| Campo | Tipo | Cuándo | Qué es |
|---|---|---|---|
saas | string | siempre | Código de tu SaaS externo, el que escribiste al crearlo |
metrica | string | siempre | Código de una métrica activa de ese SaaS |
cliente | string | siempre | Slug o id de un cliente tuyo |
evento_id | string, hasta 100 caracteres | siempre | Identificador de este evento en tu sistema. Reenviarlo con el mismo valor no lo cobra de nuevo: se reporta duplicado |
ocurrido_en | string, ISO 8601 con zona | siempre | Cuándo ocurrió el evento en tu sistema |
cantidad | number, mayor que 0, hasta 4 decimales | sólo con una métrica suma | Lo que se suma |
identificador_contado | string, hasta 100 caracteres | sólo con una métrica unico | Lo que se cuenta una vez (un usuario, una sesión, lo que tu SaaS mida) |
operacion | alta o baja | sólo con una métrica unico y recurrente | Da de alta o de baja el identificador |
Identificadores. evento_id e identificador_contado son identificadores internos de tu propio sistema —un número de ticket, un correlativo, un código interno— nunca un RUT, un correo, un nombre ni un teléfono. Los ejemplos de esta guía, del conjunto de prueba y del Swagger usan identificadores ficticios como E-1 y U-17.
Fecha. ocurrido_en se rechaza con FECHA_FUTURA si está más de 5 minutos adelante del momento en que llega, y con FECHA_FUERA_DE_PLAZO si ocurrió hace más de 13 meses. Ojo: el rechazo es por la fecha del evento, pero el cobro va al período en que el evento se recibió, no al de ocurrido_en — ver Cuándo se cobra.
Probar con el conjunto de ejemplo
Sección titulada «Probar con el conjunto de ejemplo»Con tu credencial de escritura de prueba, envía eventos contra el SaaS externo de ejemplo ejemplo-saas y sus cuatro métricas, una por forma:
| Código | Forma |
|---|---|
ejemplo_conteo | conteo |
ejemplo_horas | suma |
ejemplo_unico | único |
ejemplo_usuarios | único recurrente |
El conjunto trae además un cliente con suscripción (-1, con cupo en ejemplo_horas y sin ejemplo_conteo), uno sin suscripción (-3) y uno con un plan que no tiene ejemplo_conteo (-4), para ejercitar las dos causas de «sin cobro al cliente» sin tocar nada real. Cada evento recibe su resultado como si fuera real, pero nada se guarda ni se cobra, y no aparece en tu vista de eventos; reenviar el mismo evento_id responde duplicado. Un SaaS, una métrica o un cliente reales reciben en prueba el mismo rechazo que uno inexistente — la credencial de prueba nunca ve ni toca tus datos reales.
El tope de prueba es 1.000 eventos por hora por reseller y por SaaS de ejemplo, aparte del tope de producción.
Resultados y motivos de rechazo
Sección titulada «Resultados y motivos de rechazo»Cada evento del lote recibe uno de tres resultados:
aceptado— se registró. Si tu cliente tiene suscripción y su plan tiene la métrica, el evento se cobra en esa suscripción; si no, el evento viene consin_cobro_al_clientey su causa — ver «Sin cobro al cliente».duplicado— ya se había aceptado un evento con el mismoevento_idde ese reseller. No vuelve a sumar ni a cobrar.rechazado— no se registró, con unmotivo:
| Motivo | Cuándo |
|---|---|
SAAS_EXTERNO_NO_VALIDO | El código de saas no existe, está archivado, o es de otro reseller |
METRICA_INEXISTENTE | El código de metrica no existe |
METRICA_ARCHIVADA | La métrica existe pero está archivada |
METRICA_DE_OTRO_SAAS | La métrica es de un SaaS tuyo distinto del declarado en saas |
CLIENTE_NO_ES_DEL_RESELLER | El cliente no es tuyo (es de otro reseller, o no existe) |
CAMPO_INVALIDO | Un campo no cumple su formato; viene con campo nombrando cuál |
CAMPO_NO_ADMITIDO | Un campo que esa forma no usa; viene con campo nombrando cuál |
FECHA_FUTURA | ocurrido_en más de 5 minutos en el futuro |
FECHA_FUERA_DE_PLAZO | ocurrido_en hace más de 13 meses |
RESELLER_SUSPENDIDO | Tu cuenta de reseller está suspendida |
RESELLER_SIN_SUSCRIPCION | Tu cuenta de reseller no tiene suscripción mayorista |
LIMITE_EXCEDIDO | Superaste el tope de eventos por hora — ver abajo |
Todo rechazo se guarda 13 meses con su motivo y aparece en tu vista de eventos, salvo SAAS_EXTERNO_NO_VALIDO y LIMITE_EXCEDIDO: esos dos no se guardan, sólo cuentan en sus propios contadores (ver El tope de eventos), porque no identifican un recurso tuyo real sobre el cual guardar algo.
El tope de eventos y qué cuenta para él
Sección titulada «El tope de eventos y qué cuenta para él»Cada evento del lote —aceptado, duplicado o rechazado, sin excepción— cuenta contra el tope de 20.000 eventos por hora por SaaS externo, por hora del reloj de America/Santiago. El reseller tiene además un techo de 100.000 eventos por hora en total, sumando todos sus SaaS. Un evento rechazado con SAAS_EXTERNO_NO_VALIDO no identifica un SaaS tuyo, así que no cuenta contra ninguno de los dos: tiene su propio tope de 20.000 por hora por reseller.
Superar el tope de un SaaS o el techo del reseller responde, para ese evento, rechazado con motivo LIMITE_EXCEDIDO; ese rechazo tampoco se guarda y sólo suma al contador de ese tope — aunque ningún SaaS individual haya llegado al suyo. Si el contador no se puede verificar en ese momento, el lote completo responde 503 TOPE_NO_VERIFICABLE y no se guarda nada; reintenta tras el Retry-After.
Tu vista de eventos trae un contador por tipo de rechazo por tope (tope-saas, techo-reseller, saas-invalido), por hora y por SaaS, en GET /{tenantSlug}/reseller/eventos/contadores.
Cuándo se cobra: el período del registro
Sección titulada «Cuándo se cobra: el período del registro»El cobro de un evento aceptado va al período en que REDCUMBRE lo recibió, no al período de ocurrido_en. Si tu sistema reporta hoy, con cinco días de atraso, un evento ocurrido la semana pasada —dentro de los 13 meses de plazo—, ese evento se cobra en el período de hoy, no en el de la semana pasada. Repórtalos lo más cerca posible del momento en que ocurren si quieres que el cobro refleje el período real.
«Sin cobro al cliente»
Sección titulada ««Sin cobro al cliente»»Un evento aceptado siempre se le cobra a ti como reseller, sea o no sea cobrable a tu cliente. Cuando tu cliente no paga ese consumo, el resultado trae sin_cobro_al_cliente con una de dos causas:
sin-suscripcion— el cliente no tiene una suscripción adicional activa con ese SaaS.plan-sin-metrica— el cliente tiene suscripción, pero el plan no incluye esa métrica.
En ningún caso ese evento se le cobra después a tu cliente, aunque contrate la suscripción o cambie de plan más tarde en el mismo período — salvo el alta de un identificador recurrente: si lo reportas antes de que el cliente contrate, o con una métrica que su plan todavía no tenía, empieza a contar desde que la suscripción parte o rige el plan que la incluye.
Quién corta al llegar al cupo
Sección titulada «Quién corta al llegar al cupo»rCAPI nunca rechaza un evento por cupo: todo lo que reportas se acepta y se cobra igual, también lo que pasa el cupo incluido en el plan, al precio de adicional. Quien decide si corta el servicio eres tú, en tu propio SaaS, según «Al llegar al cupo» —seguir-cobrando o cortar— que configuraste para el plan o para la suscripción del cliente (editable en el panel, PUT /{tenantSlug}/reseller/tenants/{tenantId}/suscripciones-adicionales/{id}/al-llegar-al-cupo; cambiar el del plan no afecta a las suscripciones que ya existen).
Para saber si debes cortar, antes de prestar el servicio consulta el cupo del cliente — ver Consultar el cupo de un cliente. Además, al cruzar el 80 % y el 100 % del cupo de cada métrica recibes un aviso — ver Avisos del estado de tus clientes.
Avisos del estado de tus clientes
Sección titulada «Avisos del estado de tus clientes»Tu sistema puede recibir un aviso firmado cada vez que cambia el estado de un cliente, su suscripción adicional o su cupo. Está explicado en Recibir avisos del estado de tus clientes.
Referencia completa
Sección titulada «Referencia completa»El detalle de cada operación —sus campos, sus respuestas y la credencial mínima que exige— está en Swagger. Las credenciales en sí —crear, listar, renombrar, revocar— tienen su propia sección: Reseller · Credenciales en el panel, y Reseller · Credenciales (CLI) desde la terminal.