DocumentationDocumentationDocumentaçãoDocumentación / Procédures GestionnaireManager proceduresProcedimentos do GestorProcedimientos del Gestor
Procédures · GestionnaireProcedures · ManagerProcedimentos · GestorProcedimientos · Gestor
Procédures du gestionnaireManager proceduresProcedimentos do gestorProcedimientos del gestor
Le mode d'emploi concret du gestionnaire : de la première connexion à la création d'une tontine, l'invitation des participants, le suivi des cotisations et le décaissement — avec les écrans et les appels réels.
The manager's hands-on playbook: from first sign-in to creating a tontine, inviting participants, tracking contributions and paying out — with the real screens and calls.
O manual prático do gestor: do primeiro acesso à criação de uma tontina, ao convite dos participantes, ao acompanhamento das contribuições e ao desembolso — com os ecrãs e as chamadas reais.
El manual práctico del gestor: del primer acceso a la creación de una tanda, la invitación de participantes, el seguimiento de las aportaciones y el desembolso — con las pantallas y las llamadas reales.
Rôle & prérequisRole & prerequisitesFunção & pré-requisitosRol & requisitos
Vous êtes le chef d'orchestre d'une ou plusieurs tontines. Votre compte Gestionnaire (rôle Keycloak MANAGER) est créé par l'admin RMS : vous ne créez pas votre propre compte. À la création, l'admin attache à votre compte un attribut tenantId égal à votre identifiant — c'est lui qui isole vos données de celles des autres gestionnaires.
You are the conductor of one or more tontines. Your Manager account (Keycloak role MANAGER) is created by the RMS admin: you do not create your own account. At creation, the admin attaches a tenantId attribute equal to your identifier — this is what isolates your data from other managers'.
Você é o maestro de uma ou mais tontinas. A sua conta Gestor (função Keycloak MANAGER) é criada pelo admin da RMS: você não cria a sua própria conta. Na criação, o admin associa à sua conta um atributo tenantId igual ao seu identificador — é ele que isola os seus dados dos de outros gestores.
Eres el director de una o varias tandas. Tu cuenta Gestor (rol Keycloak MANAGER) la crea el admin de RMS: no creas tu propia cuenta. Al crearla, el admin adjunta a tu cuenta un atributo tenantId igual a tu identificador — es lo que aísla tus datos de los de otros gestores.
⚠️Pas encore de compte ?No account yet?Ainda sem conta?¿Aún sin cuenta?
Faites votre demande depuis Devenir gestionnaire. L'admin RMS crée votre espace et vous transmet vos accès.Request one from Become a manager. The RMS admin creates your space and sends your credentials.Faça o seu pedido em Tornar-se gestor. O admin da RMS cria o seu espaço e envia-lhe os acessos.Solicítala desde Ser gestor. El admin de RMS crea tu espacio y te envía tus accesos.
Première connexionFirst sign-inPrimeiro acessoPrimer acceso
-
Ouvrir le siteOpen the siteAbrir o siteAbrir el sitio
Allez sur https://sikaflow.grouperms.com et connectez-vous (redirection Keycloak).Go to https://sikaflow.grouperms.com and sign in (Keycloak redirect).Vá a https://sikaflow.grouperms.com e inicie sessão (redireção Keycloak).Ve a https://sikaflow.grouperms.com e inicia sesión (redirección Keycloak).
-
Nouveau mot de passe + OTPNew password + OTPNova palavra-passe + OTPNueva contraseña + OTP
Au premier login, Keycloak impose un nouveau mot de passe puis la configuration d'un code à usage unique (OTP) via une application d'authentification (QR). C'est obligatoire.On the first login, Keycloak enforces a new password then the setup of a one-time code (OTP) via an authenticator app (QR). This is mandatory.No primeiro acesso, o Keycloak exige uma nova palavra-passe e depois a configuração de um código de uso único (OTP) através de uma aplicação de autenticação (QR). É obrigatório.En el primer acceso, Keycloak exige una nueva contraseña y luego la configuración de un código de un solo uso (OTP) mediante una aplicación de autenticación (QR). Es obligatorio.
-
Vérifier la sessionCheck the sessionVerificar a sessãoVerificar la sesión
En cas de doute, ouvrez /auth-check.html : vous devez y voir votre tenantId et un appel GET /dashboard/manager en 200.If in doubt, open /auth-check.html: you should see your tenantId and a GET /dashboard/manager call returning 200.Em caso de dúvida, abra /auth-check.html: deve ver o seu tenantId e uma chamada GET /dashboard/manager em 200.Si tienes dudas, abre /auth-check.html: debes ver tu tenantId y una llamada GET /dashboard/manager en 200.
Chronologie côté gestionnaireManager chronologyCronologia do gestorCronología del gestor
Créer le groupeCreate the groupCriar o grupoCrear el grupo
→
Inviter les participantsInvite participantsConvidar participantesInvitar participantes
→
CotisationsContributionsContribuiçõesAportaciones
→
Valider hors-ligneValidate offlineValidar offlineValidar offline
→
Libérer le tourRelease roundLibertar rondaLiberar ronda
→
RotationRotationRotaçãoRotación
Créer une tontineCreate a tontineCriar uma tontinaCrear una tanda
Écran Espace gestionnaire · Groupes. Le formulaire envoie POST /groups.
Screen Manager space · Groups. The form sends POST /groups.
Ecrã Espaço do gestor · Grupos. O formulário envia POST /groups.
Pantalla Espacio del gestor · Grupos. El formulario envía POST /groups.
ℹ️Les trois modes de bénéficiaireThe three beneficiary modesOs três modos de beneficiárioLos tres modos de beneficiario
fixed : ordre fixe défini à l'avance. draw : tirage à chaque tour parmi ceux qui n'ont pas encore reçu. auction : le tour va au plus offrant (enchère).fixed: fixed order set in advance. draw: a draw each round among those who have not yet received. auction: the round goes to the highest bidder.fixed: ordem fixa definida à partida. draw: sorteio a cada ronda entre os que ainda não receberam. auction: a ronda vai para o licitante mais alto.fixed: orden fija definido de antemano. draw: sorteo en cada ronda entre quienes aún no han recibido. auction: la ronda va al mejor postor.
Créer & inviter des participantsCreate & invite participantsCriar & convidar participantesCrear e invitar participantes
Écran Espace gestionnaire · Participants. Créer une identité envoie POST /participants (champs : fullName obligatoire ; email, phone, lang optionnels) ; l'enregistrement est créé avec le statut invited. Rattacher au groupe : POST /groups/{groupId}/members.
Screen Manager space · Participants. Creating an identity sends POST /participants (fields: fullName required; email, phone, lang optional); the record is created with status invited. Attach to a group: POST /groups/{groupId}/members.
Ecrã Espaço do gestor · Participantes. Criar uma identidade envia POST /participants (campos: fullName obrigatório; email, phone, lang opcionais); o registo é criado com o estado invited. Associar a um grupo: POST /groups/{groupId}/members.
Pantalla Espacio del gestor · Participantes. Crear una identidad envía POST /participants (campos: fullName obligatorio; email, phone, lang opcionales); el registro se crea con estado invited. Vincular a un grupo: POST /groups/{groupId}/members.
⚠️Important : l'invitation n'est PAS encore automatiqueImportant: invitation is NOT yet automaticImportante: o convite ainda NÃO é automáticoImportante: la invitación aún NO es automática
Créer un participant dans l'app ne crée pas de compte de connexion et n'envoie aucun email. L'invitation automatique (email + provisioning Keycloak) est prévue mais pas encore en place (feuille de route SES/SNS). Aujourd'hui, l'accès se donne manuellement — ci-dessous.Creating a participant in the app does not create a login and sends no email. Automatic invitation (email + Keycloak provisioning) is planned but not yet in place (SES/SNS roadmap). Today, access is granted manually — see below.Criar um participante na app não cria conta de acesso e não envia email. O convite automático (email + provisionamento Keycloak) está previsto mas ainda não está ativo (roteiro SES/SNS). Hoje, o acesso é dado manualmente — ver abaixo.Crear un participante en la app no crea una cuenta de acceso y no envía ningún correo. La invitación automática (correo + aprovisionamiento Keycloak) está prevista pero aún no está activa (hoja de ruta SES/SNS). Hoy, el acceso se da manualmente — ver abajo.
Procédure d'invitation manuelle, aujourd'hui :
Manual invitation procedure, today:
Procedimento de convite manual, hoje:
Procedimiento de invitación manual, hoy:
-
Créer le participant dans l'appCreate the participant in the appCriar o participante na appCrear el participante en la app
GestionnaireManagerGestorGestor
Renseignez nom, e-mail, téléphone, puis rattachez-le au groupe. Notez son identifiant de participant.Enter name, e-mail, phone, then attach to the group. Note their participant id.Introduza nome, e-mail, telefone e associe-o ao grupo. Anote o id de participante.Introduce nombre, correo, teléfono y vincúlalo al grupo. Anota su id de participante.
-
Provisionner le compte KeycloakProvision the Keycloak accountProvisionar a conta KeycloakAprovisionar la cuenta Keycloak
Admin
L'admin RMS crée l'utilisateur Keycloak (rôle PARTICIPANT) avec les attributs tenantId = votre id gestionnaire et participantId = l'id du participant — via le script infra/create-keycloak-test-users.sh ou la console Keycloak.The RMS admin creates the Keycloak user (role PARTICIPANT) with attributes tenantId = your manager id and participantId = the participant id — via the infra/create-keycloak-test-users.sh script or the Keycloak console.O admin da RMS cria o utilizador Keycloak (função PARTICIPANT) com os atributos tenantId = o seu id de gestor e participantId = o id do participante — via o script infra/create-keycloak-test-users.sh ou a consola Keycloak.El admin de RMS crea el usuario Keycloak (rol PARTICIPANT) con los atributos tenantId = tu id de gestor y participantId = el id del participante — mediante el script infra/create-keycloak-test-users.sh o la consola Keycloak.
-
Transmettre les accèsShare the credentialsTransmitir os acessosTransmitir los accesos
GestionnaireManagerGestorGestor
Communiquez à la personne, hors plateforme (SMS, WhatsApp…), l'URL https://sikaflow.grouperms.com et son mot de passe temporaire.Send the person, off-platform (SMS, WhatsApp…), the URL https://sikaflow.grouperms.com and their temporary password.Comunique à pessoa, fora da plataforma (SMS, WhatsApp…), o URL https://sikaflow.grouperms.com e a palavra-passe temporária.Comunica a la persona, fuera de la plataforma (SMS, WhatsApp…), la URL https://sikaflow.grouperms.com y su contraseña temporal.
-
Premier login du participantParticipant's first loginPrimeiro acesso do participantePrimer acceso del participante
Participant
La personne se connecte, définit son mot de passe et configure son OTP. Elle voit alors ses groupes et ses échéances.The person signs in, sets their password and configures their OTP. They then see their groups and due dates.A pessoa inicia sessão, define a palavra-passe e configura o OTP. Passa a ver os seus grupos e vencimentos.La persona inicia sesión, define su contraseña y configura su OTP. Entonces ve sus grupos y vencimientos.
Suivre les cotisations & valider le hors-ligneTrack contributions & validate offlineAcompanhar contribuições & validar offlineSeguir aportaciones y validar offline
Écran Espace gestionnaire · Cotisations : liste par groupe via GET /groups/{groupId}/contributions. Un paiement en ligne se confirme seul (webhook). Un paiement hors-ligne déclaré attend votre validation : POST /contributions/{groupId}/{round}/{participantId}/validate. Le tour n'est « complet » que lorsque toutes les cotisations sont confirmées.
Screen Manager space · Contributions: per-group list via GET /groups/{groupId}/contributions. An online payment confirms itself (webhook). A declared offline payment waits for your validation: POST /contributions/{groupId}/{round}/{participantId}/validate. The round is only "complete" once every contribution is confirmed.
Ecrã Espaço do gestor · Contribuições: lista por grupo via GET /groups/{groupId}/contributions. Um pagamento online confirma-se sozinho (webhook). Um pagamento offline declarado aguarda a sua validação: POST /contributions/{groupId}/{round}/{participantId}/validate. A ronda só fica "completa" quando todas as contribuições estão confirmadas.
Pantalla Espacio del gestor · Aportaciones: lista por grupo vía GET /groups/{groupId}/contributions. Un pago en línea se confirma solo (webhook). Un pago fuera de línea declarado espera tu validación: POST /contributions/{groupId}/{round}/{participantId}/validate. La ronda solo está "completa" cuando todas las aportaciones están confirmadas.
ℹ️Écrans encore facticesScreens still stubbedEcrãs ainda fictíciosPantallas aún ficticias
Certaines vues agrégées (/manager/contributions, /manager/payouts) affichent encore des données de démonstration même en mode réel. Le suivi fiable passe par les endpoints par groupe ci-dessus.Some aggregate views (/manager/contributions, /manager/payouts) still show demo data even in live mode. Reliable tracking goes through the per-group endpoints above.Algumas vistas agregadas (/manager/contributions, /manager/payouts) ainda mostram dados de demonstração mesmo em modo real. O acompanhamento fiável passa pelos endpoints por grupo acima.Algunas vistas agregadas (/manager/contributions, /manager/payouts) aún muestran datos de demostración incluso en modo real. El seguimiento fiable pasa por los endpoints por grupo de arriba.
Libérer le décaissementRelease the payoutLibertar o desembolsoLiberar el desembolso
-
Vérifier la collecteCheck the collectionVerificar a cobrançaVerificar la recaudación
Assurez-vous que toutes les cotisations du tour sont confirmées (payées ou validées).Make sure every contribution of the round is confirmed (paid or validated).Certifique-se de que todas as contribuições da ronda estão confirmadas (pagas ou validadas).Asegúrate de que todas las aportaciones de la ronda están confirmadas (pagadas o validadas).
-
Libérer le tour NRelease round NLibertar a ronda NLiberar la ronda N
Bouton « Libérer le tour N » → POST /groups/{groupId}/rounds/{round}/disburse. Sikaflow désigne le bénéficiaire selon le mode, verse le pot net (moins la commission) et incrémente le tour."Release round N" button → POST /groups/{groupId}/rounds/{round}/disburse. Sikaflow designates the beneficiary by mode, pays out the net pot (minus commission) and advances the round.Botão "Libertar a ronda N" → POST /groups/{groupId}/rounds/{round}/disburse. O Sikaflow designa o beneficiário conforme o modo, paga o bolo líquido (menos a comissão) e avança a ronda.Botón "Liberar la ronda N" → POST /groups/{groupId}/rounds/{round}/disburse. Sikaflow designa al beneficiario según el modo, paga el fondo neto (menos la comisión) y avanza la ronda.
-
Collecte incomplète ?Incomplete collection?Cobrança incompleta?¿Recaudación incompleta?
Si le tour n'est pas entièrement collecté, l'appel renvoie 409 et le décaissement est bloqué avec un message clair.If the round is not fully collected, the call returns 409 and the payout is blocked with a clear message.Se a ronda não estiver totalmente cobrada, a chamada devolve 409 e o desembolso é bloqueado com uma mensagem clara.Si la ronda no está totalmente recaudada, la llamada devuelve 409 y el desembolso se bloquea con un mensaje claro.
✅Sécurité de l'argentMoney safetySegurança do dinheiroSeguridad del dinero
Le décaissement est idempotent : un double-clic ne verse jamais deux fois. La cagnotte du groupe est débitée de façon atomique au moment du versement.The payout is idempotent: a double-click never pays twice. The group's pot is debited atomically at the moment of release.O desembolso é idempotente: um duplo clique nunca paga duas vezes. O bolo do grupo é debitado de forma atómica no momento da libertação.El desembolso es idempotente: un doble clic nunca paga dos veces. El fondo del grupo se debita de forma atómica en el momento de la liberación.
Tester sans argent réelTest without real moneyTestar sem dinheiro realProbar sin dinero real
⚠️FedaPay & Stripe sont en LIVE en productionFedaPay & Stripe are LIVE in productionFedaPay & Stripe estão em LIVE em produçãoFedaPay y Stripe están en LIVE en producción
Payer en ligne en prod = vraie transaction. Pour tester toute la boucle sans débit réel, utilisez le chemin hors-ligne : le participant déclare sa cotisation, vous la validez, puis vous décaissez. Le cycle complet (cotisation → validation → décaissement → rotation) est exercé sans toucher aux paiements live.Paying online in prod = a real transaction. To test the whole loop without a real charge, use the offline path: the participant declares their contribution, you validate it, then you disburse. The full cycle (contribution → validation → payout → rotation) runs without touching live payments.Pagar online em produção = transação real. Para testar toda a volta sem débito real, use o caminho offline: o participante declara a contribuição, você valida, depois desembolsa. O ciclo completo (contribuição → validação → desembolso → rotação) corre sem tocar nos pagamentos live.Pagar en línea en producción = transacción real. Para probar todo el bucle sin cargo real, usa la vía offline: el participante declara su aportación, tú la validas, luego desembolsas. El ciclo completo (aportación → validación → desembolso → rotación) se ejecuta sin tocar los pagos live.