geCloud
Ouvrir geCloud

geCloud API

Intégrez la facturation, la comptabilité et la gestion clients de geCloud dans vos propres outils. Cette API REST/JSON couvre les entreprises, clients, factures, devis, dépenses, paiements et produits.

Base URL : https://app.gecloud.me/api/v1/ Format : JSON Auth : api_token

Introduction

Toutes les requêtes se font sur https://app.gecloud.me/api/v1/ suivi du chemin de l'endpoint. Toutes les réponses sont au format application/json, y compris les erreurs.

API versionnée — utilisez /v1/

/api/v1/… est le chemin recommandé pour toute nouvelle intégration : il est stable, et les futures évolutions incompatibles se feront sous un nouveau préfixe (/api/v2/…) sans jamais modifier le comportement de v1. Les anciens chemins sans préfixe (/api/…, sans /v1/) restent disponibles pour ne pas casser les intégrations existantes, mais sont considérés comme historiques — ne les utilisez plus pour du nouveau code.

Authentification

L'API utilise un jeton statique par utilisateur : api_token. Il est généré automatiquement à l'inscription ou à la première connexion via l'endpoint de connexion, et reste valide jusqu'à révocation manuelle (aucune expiration automatique).

Comment envoyer le jeton

Méthode de la requêteOù placer le jeton
GETParamètre de requête ?api_token=xxxx
POSTChamp de formulaire api_token (certains endpoints l'acceptent aussi dans le corps JSON ou l'en-tête Authorization — précisé sur chaque page)

Jeton unique, sans expiration ni portée

Le api_token donne un accès complet au compte, sans limitation de portée (scope) ni expiration. Traitez-le comme un mot de passe : ne l'exposez jamais côté client (navigateur, app mobile compilée), et régénérez-le si vous suspectez une fuite.

Erreurs & conventions

L'API répond toujours avec un code HTTP 200, même en cas d'erreur métier — le statut réel se lit dans le corps JSON via la clé st ou status selon l'endpoint (voir chaque page). Une valeur 0 signifie systématiquement un échec ; le message d'erreur est fourni dans msg, message ou error selon l'endpoint.

Pas de convention unique de code de statut

Les endpoints de cette API ont été développés à des périodes différentes et n'utilisent pas tous la même clé ni le même barème de codes. Référez-vous systématiquement à la section « Réponses » de chaque endpoint plutôt que de supposer une convention globale.

Authentification

Créer un compte, se connecter et créer la première entreprise associée.

POST/api/v1/register

Crée un nouveau compte utilisateur (essai gratuit ou compte standard selon la configuration) et génère automatiquement son api_token.

Aucune authentification requise

Paramètres (form-data)

ChampTypeDescription
emailrequisstringEmail valide, unique.
passwordrequisstring4 à 46 caractères.
phonerequisstring10 à 20 caractères.
namestringNom complet de l'utilisateur.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/register \
  -d "email=jean@exemple.com" \
  -d "password=MotDePasse123" \
  -d "phone=+22997001122" \
  -d "name=Jean Dupont"

Réponse — succès

200 OK
{
  "st": 1,
  "msg": "Registration successful",
  "user": {
    "id": 482,
    "name": "Jean Dupont",
    "email": "jean@exemple.com",
    "role": "user",
    "token": "9f3c1a...e02b"
  }
}

Réponses possibles

  • st: 0 Champs invalides — le détail est dans msg.
  • st: 2 Cet email existe déjà.
  • st: 1 Compte créé — jeton renvoyé dans user.token.
POST/api/v1/login

Authentifie un utilisateur par email et mot de passe, et renvoie (ou génère si absent) son api_token.

Aucune authentification requiseAccepte JSON ou form-data

Corps de la requête

ChampTypeDescription
emailrequisstringEmail du compte.
passwordrequisstringMot de passe du compte.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{"email":"jean@exemple.com","password":"MotDePasse123"}'

Réponse — succès

200 OK
{
  "st": 1,
  "msg": "Login successful",
  "user": {
    "id": 482,
    "name": "Jean Dupont",
    "slug": "jean-dupont",
    "thumb": "assets/front/img/avatar.png",
    "email": "jean@exemple.com",
    "role": "user",
    "parent": 482,
    "token": "9f3c1a...e02b"
  }
}

Réponses possibles

  • st: 0 Identifiants invalides.
  • st: 2 Compte en attente d'activation.
  • st: 3 Compte suspendu.
  • st: 4 Vérification d'email requise avant connexion.
  • st: 1 Connexion réussie — jeton dans user.token.
POST/api/v1/business

Crée la première entreprise associée à un compte fraîchement inscrit.

api_token requis

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/business \
  -d "api_token=xxxx" -d "name=Ma Société" -d "country=21"

Paramètres (form-data)

ChampTypeDescription
api_tokenrequisstringJeton de l'utilisateur.
namerequisstringRaison sociale de l'entreprise.
countryrequisintIdentifiant du pays (voir Référence — Pays).
categoryintIdentifiant de catégorie d'entreprise.

Réponse — succès

200 OK
{ "st": 3, "msg": "Business registered successfully" }

Réponses possibles

  • st: 0 Jeton manquant, invalide, ou champs requis absents.
  • st: 3 Créée — vérification email désactivée sur le compte.
  • st: 4 Créée — vérification email activée (compte en attente de vérification).

Entreprises

Un compte utilisateur peut gérer plusieurs entreprises (multi-société). La plupart des autres ressources (factures, clients, produits…) sont rattachées à une entreprise via son identifiant uid public.

id interne vs uid public

Chaque entreprise a un id interne (numérique, base de données) et un uid public. Selon l'endpoint, le paramètre attendu (parfois nommé business_id malgré tout) est en réalité l'uid, pas l'id interne — c'est précisé pour chaque endpoint concerné ci-dessous. En cas de doute, utilisez toujours la valeur uid renvoyée par la liste des entreprises.

GET/api/v1/business

Liste toutes les entreprises appartenant à l'utilisateur authentifié.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.

Requête

cURL
curl "https://app.gecloud.me/api/v1/business?api_token=xxxx"

Réponse — succès

200 OK
{ "status": 1, "business": [ { "id": 12, "uid": "88123", "name": "Ma Société", "..." : "..." } ] }
POST/api/v1/business/add

Crée une nouvelle entreprise, ou en modifie une existante si id est fourni. À la création, le nombre d'entreprises est limité par le forfait du compte.

api_token requisAccepte JSON ou form-data
ChampTypeDescription
api_tokenrequisstring
idintFourni = modification.
namerequisstringRaison sociale.
countryintRequis uniquement à la création.
title, phone, address, biz_number, vat_code, categorystring/intChamps optionnels du profil entreprise.
num_format, symbol_direction, space_price_symbol, price_separatorintPréférences d'affichage monétaire.

Renseignez toujours les préférences monétaires

Laisser num_format vide provoque une erreur serveur à l'affichage des montants pour cette entreprise. Envoyez explicitement 0 si vous n'avez pas de préférence.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/business/add \
  -d "api_token=xxxx" -d "name=Ma Société" -d "country=21"

Réponse — succès (création)

200 OK
{ "status": 1, "msg": "Business created", "business_id": 57 }

Réponses possibles

  • status: 0 Jeton manquant/invalide, nom absent, ou limite du forfait atteinte.
  • status: 1 Créée ou mise à jour — voir msg.
GET/api/v1/business/show/{hash}

Détail d'une entreprise. L'identifiant attendu dans l'URL n'est ni l'id ni l'uid brut, mais le MD5 de l'id interne (md5(id)).

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
hashrequisSegment d'URL — md5(id), où id est l'identifiant interne renvoyé par la liste des entreprises.

Requête

cURL
curl "https://app.gecloud.me/api/v1/business/show/39461a19e9eddfb385ea76b26521ea48?api_token=xxxx"

Réponses possibles

  • status: 0 Non trouvée, ou n'appartient pas à l'utilisateur du jeton (Access denied).
  • status: 1 business : détail complet.

Clients

Gestion du carnet de clients d'une entreprise.

POST/api/v1/customers/add

Crée un client, ou le modifie si id est fourni.

api_token requis

business_id attend l'uid, pas l'id interne

Malgré son nom, le champ business_id de cet endpoint doit contenir l'uid public de l'entreprise (celui renvoyé par la liste des entreprises), pas son id interne. Envoyer l'id interne crée le client avec succès, mais il devient invisible depuis la liste des clients (qui filtre sur l'uid).

ChampTypeDescription
api_tokenrequisstring
idintFourni = modification.
namerequisstringMax 100 caractères.
business_idrequisstringuid de l'entreprise (voir avertissement ci-dessus).
email, phone, address, address1, address2, city, postal_codestringCoordonnées.
cus_number, vat_code, aibstringIdentifiants fiscaux.
country, currencyintPays / devise.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/customers/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "name=ACME SARL" -d "email=contact@acme.bj"

Réponse — succès

200 OK
{ "st": 1, "msg": "Customer created successfully", "customer_id": 913 }

Réponses possibles

  • st: 0 Jeton invalide, validation échouée, ou limite de clients du forfait atteinte (création uniquement).
  • st: 1 Créé ou mis à jour.
GET/api/v1/customers

Liste les clients d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string — uid de l'entreprise.

Requête

cURL
curl "https://app.gecloud.me/api/v1/customers?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{
  "st": 1,
  "total": 2,
  "customers": [
    { "id": 913, "name": "ACME SARL", "email": "contact@acme.bj", "phone": "...",
      "address": "...", "cus_number": "...", "vat_code": "...", "country": 21,
      "currency": "XOF", "city": "Cotonou", "postal_code": "", "status": 1 }
  ]
}
POST/api/v1/customers/show

Détail complet d'un client. (Endpoint de lecture accessible en POST pour des raisons historiques.)

api_token requis
ChampTypeDescription
api_tokenrequisstring
customer_idrequisint

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/customers/show \
  -d "api_token=xxxx" -d "customer_id=913"

Réponses possibles

  • st: 0 Non trouvé, ou n'appartient pas à l'utilisateur (Unauthorized).
  • st: 1 customer : détail complet.
POST/api/v1/customers/delete

Supprime définitivement un client.

api_token requis
ChampTypeDescription
api_tokenrequisstring
customer_idrequisint

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/customers/delete \
  -d "api_token=xxxx" -d "customer_id=913"

Réponse — succès

200 OK
{ "st": 1, "msg": "Customer deleted successfully" }

Réponses possibles

  • st: 0 Introuvable, ou n'appartient pas à l'utilisateur (Unauthorized).
  • st: 1 Supprimé.

Factures

Création, consultation, envoi et normalisation fiscale (MECeF, Bénin) des factures de vente. Le champ business_id des factures correspond à l'uid public de l'entreprise.

POST/api/v1/invoices/add

Crée une facture (ou la modifie si id est fourni) avec ses lignes de produits/services, taxes, et configuration de facturation récurrente le cas échéant.

api_token requis
ChampTypeDescription
api_tokenrequisstring
idintFourni = modification.
customerrequisintIdentifiant du client.
business_idstringuid de l'entreprise.
title, status, summary, number, poso_number—Métadonnées de la facture.
date, payment_due, due_limitdateDates d'émission et d'échéance.
discount, sub_total, grand_total, taxnumberMontants et taux de taxe.
is_recurringboolSi 1, fournir aussi recurring_start, recurring_end, frequency.
product_ids[], items[], details[], price[], quantity[], total_price[], taxes[]arraysLignes de la facture, index alignés entre tableaux. product_ids[i] = 0 crée un nouveau produit à la volée à partir de items[i]/price[i].

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/invoices/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "customer=913" \
  -d "title=Facture Juillet" -d "grand_total=150000" -d "sub_total=150000"

Réponse — succès

200 OK
{ "status": 2, "invoice_id": "a3f9c2e1b4d6..." }

Réponses possibles

  • st: 0 Jeton manquant ou invalide.
  • status: 3 Erreur de validation — détail dans error.
  • status: 4 Quota global de factures de la plateforme atteint.
  • status: 5 Limite de factures de votre forfait atteinte.
  • status: 2 Créée ou mise à jour — invoice_id renvoyé (haché MD5).
GET/api/v1/invoices

Liste les factures (ou avoirs si type=4) d'une entreprise, paginées.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
statusFiltre par statut de facture. Omis = pas de filtre (toutes visibles).
type1 = facture normale (défaut), 4 = avoir. Alternative : credit_note=true.
per_page, pagePagination (défauts : 10 / 1).

Requête

cURL
curl "https://app.gecloud.me/api/v1/invoices?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{
  "business_id": "88123", "type": 1,
  "st": 1, "total": 34, "per_page": 10, "page": 1,
  "invoices": [
    { "id": 501, "number": "FAC-0501", "title": "...", "summary": "...",
      "customer_id": 913, "customer_name": "ACME SARL",
      "date": "2026-07-01", "grand_total": 150000, "status": 1,
      "created_at": "2026-07-01 10:22:00" }
  ]
}
GET/api/v1/invoices/{id}

Détail d'une facture et ses paiements associés.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
idrequisSegment d'URL — identifiant numérique interne de la facture.

Requête

cURL
curl "https://app.gecloud.me/api/v1/invoices/501?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{
  "st": 1,
  "invoice": { "id": 501, "number": "FAC-0501", "..." : "..." },
  "payments": [ { "id": 88, "amount": 50000, "payment_date": "2026-07-05", "..." : "..." } ]
}
POST/api/v1/send_invoice/{invoice_id}

Envoie la facture par email au client et la marque comme envoyée.

api_token requisCorps JSON obligatoire
Champ (JSON)TypeDescription
api_tokenrequisstringDans le corps JSON (pas en query string).
customer_idrequisint
email_torequisstringAdresse destinataire.
subject, messagestringPersonnalisation de l'email.
is_myself / email_myselfboolEnvoie une copie à l'expéditeur.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/send_invoice/501 \
  -H "Content-Type: application/json" \
  -d '{"api_token":"9f3c1a...","customer_id":913,"email_to":"client@acme.bj"}'

Réponses possibles

  • status: 0 JSON invalide, jeton manquant/invalide, facture ou client introuvable.
  • status: 1 Email envoyé.
  • status: 2 Échec d'envoi de l'email (problème SMTP).
GET/api/v1/invoices/{id}/pdf

Télécharge la facture au format PDF.

api_token requis
ParamètreDescription
api_tokenrequisEn-tête Authorization, ou paramètre de requête à défaut.
idrequisSegment d'URL (identifiant numérique de la facture).

Requête

cURL
curl -OJ "https://app.gecloud.me/api/v1/invoices/501/pdf?api_token=xxxx"

Réponse — succès

200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="Invoice-501.pdf"

<contenu binaire du PDF>

Réponses possibles

  • status: 0 Jeton manquant/invalide, facture introuvable, ou génération PDF indisponible sur le serveur.
  • 200 Flux binaire du fichier PDF.
DELETE/api/v1/invoices/delete/{id}

Supprime définitivement une facture et ses paiements associés. Irréversible.

api_token requis
ParamètreDescription
api_tokenrequisEn-tête Authorization, ou paramètre de requête à défaut.
idrequisSegment d'URL (haché MD5).

Requête

cURL
curl -X DELETE https://app.gecloud.me/api/v1/invoices/delete/207f88018f72237565570f8a9e5ca240 \
  -H "Authorization: xxxx"

Réponse — succès

200 OK
{ "status": 1, "message": "Facture et paiements associés supprimés avec succès" }
POST/api/v1/invoices/{invoice_id}/normalize

Soumet une facture à la passerelle fiscale MECeF (Bénin, DGI) pour obtenir un identifiant de facture normalisée/certifiée.

api_token requisBénin uniquement
ParamètreDescription
api_tokenrequisEn-tête Authorization, ou en POST à défaut.
invoice_idrequisSegment d'URL. La facture doit avoir une clé API MECeF déjà configurée.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/invoices/501/normalize \
  -H "Authorization: xxxx"

Réponse — succès

200 OK
{
  "status": 1,
  "message": "Facture normalisée créée avec succès",
  "uid": "MECEF-UID-...",
  "data": { "uid": "...", "invoice_id": 501, "type": "FV", "total": 150000, "etat": 0, "...": "..." }
}

Réponses possibles

  • status: 0 Jeton manquant/invalide, facture introuvable, clé MECeF non définie, ou erreur renvoyée par la passerelle fiscale.
  • status: 1 Normalisation réussie.
GET/api/v1/invoices-normalized

Liste les factures ayant été normalisées via MECeF pour une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
per_page, pagePagination (défauts : 10 / 1).

Requête

cURL
curl "https://app.gecloud.me/api/v1/invoices-normalized?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "st": 1, "total": 12, "per_page": 10, "page": 1, "invoices": [ "..." ] }

Devis (proforma)

Les devis partagent la même table que les factures mais avec un type distinct ; ils peuvent être convertis en facture définitive. Créés au statut brouillon par défaut.

GET/api/v1/estimates

Liste les devis d'une entreprise, paginés et filtrables par statut.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
per_page, pagePagination (défauts : 10 / 1).
statusOmis = pas de filtre (tous les devis visibles).

Requête

cURL
curl "https://app.gecloud.me/api/v1/estimates?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "st": 1, "total": 8, "per_page": 10, "page": 1,
  "estimates": [ { "id": 22, "number": "DEV-0022", "grand_total": 80000, "status": 0, "...": "..." } ] }
GET/api/v1/estimates/{id}

Détail d'un devis avec ses lignes et taxes.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
idrequisSegment d'URL.

Requête

cURL
curl "https://app.gecloud.me/api/v1/estimates/22?api_token=xxxx"

Réponses possibles

  • st: 0 Introuvable (ou n'est pas un devis).
  • st: 1 estimate : détail avec items et taxes.
POST/api/v1/estimates/add

Crée un devis (ou le modifie si id est fourni), avec création automatique des produits inconnus.

api_token requis
ChampTypeDescription
api_tokenrequisstring
idintFourni = modification.
customerrequisint
business_id, title, summary, number, poso_number—Métadonnées.
date, expire_ondate
discount, sub_total, grand_totalnumber
product_ids[], items[], details[], price[], quantity[], total_price[], taxes[]arraysLignes du devis.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/estimates/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "customer=913" \
  -d "title=Devis Juillet" -d "grand_total=80000" -d "sub_total=80000"

Réponse — succès

200 OK
{ "status": 1, "estimate_id": 22, "estimate_crypt_id": "e91a...c02" }

Réponses possibles

  • status: 2 Erreur de validation.
  • status: 4 Limite du forfait atteinte (création uniquement).
  • status: 1 Créé ou mis à jour.
POST/api/v1/estimates/convert-proforma

Convertit un devis existant en facture définitive (brouillon).

api_token requis
ChampTypeDescription
api_tokenrequisstring
invoice_idrequisintIdentifiant du devis à convertir.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/estimates/convert-proforma \
  -d "api_token=xxxx" -d "invoice_id=22"

Réponse — succès

200 OK
{ "st": 1, "msg": "Proforma converted to invoice successfully", "invoice_id": 501 }

Réponses possibles

  • st: 0 ID manquant, introuvable, ou ce n'est pas un devis.
  • st: 1 Converti — devient une facture au statut brouillon.
POST/api/v1/estimates/delete/{id}

Supprime définitivement un devis.

api_token requis
ParamètreDescription
api_tokenrequisEn-tête Authorization, ou champ de formulaire à défaut.
idrequisSegment d'URL (identifiant numérique du devis).

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/estimates/delete/22 \
  -d "api_token=xxxx"

Réponse — succès

200 OK
{ "st": 1, "msg": "Estimate deleted successfully" }

Réponses possibles

  • st: 0 Introuvable, n'appartient pas à l'utilisateur, ou ce n'est pas un devis.
  • st: 1 Supprimé.

Factures fournisseurs

Gestion des factures reçues de vos fournisseurs (achats).

GET/api/v1/bills

Liste les factures fournisseurs d'une entreprise, paginées.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_idrequisQuery string — uid de l'entreprise.
limit, offsetPagination (défaut : 20 / 0).

Requête

cURL
curl "https://app.gecloud.me/api/v1/bills?api_token=xxxx&business_id=88123"

Réponse — succès

200 OK
{ "status": 1, "bills": [ { "id": 71, "number": "BILL-0071", "...": "..." } ] }
GET/api/v1/bills/{id}

Détail d'une facture fournisseur.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
idrequisSegment d'URL.

Requête

cURL
curl "https://app.gecloud.me/api/v1/bills/71?api_token=xxxx"

Réponse — succès

200 OK
{ "status": 1, "bill": { "id": 71, "number": "BILL-0071", "...": "..." } }
POST/api/v1/bills/add

Crée une facture fournisseur (ou la modifie si id est fourni) avec ses lignes.

api_token requis
ChampTypeDescription
api_tokenrequisstring
idintFourni = modification.
vendorrequisintIdentifiant du fournisseur.
business_id, title, summary, number, date—Métadonnées.
discount, sub_total, grand_totalnumber
payment_due, due_limitdate
items[], details[], price[], quantity[], total_price[]arraysLignes de la facture.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/bills/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "vendor=12" \
  -d "title=Facture Fournisseur" -d "grand_total=45000" -d "sub_total=45000"

Réponse — succès

200 OK
{ "status": 1, "bill_id": "7c1e...a09" }

Réponses possibles

  • status: 2 Erreur de validation — détail dans error.
  • status: 1 Créée ou mise à jour.

Dépenses

Suivi des dépenses, avec justificatif optionnel.

GET/api/v1/expenses

Liste les dépenses d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_idrequisQuery string — uid de l'entreprise.

Requête

cURL
curl "https://app.gecloud.me/api/v1/expenses?api_token=xxxx&business_id=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [ { "id": 305, "amount": 25000, "net_amount": 27500, "...": "..." } ] }
GET/api/v1/expenses/{id}

Détail d'une dépense.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_idrequisQuery string.
idrequisSegment d'URL.

Requête

cURL
curl "https://app.gecloud.me/api/v1/expenses/305?api_token=xxxx&business_id=88123"

Réponses possibles

  • status: 0 Introuvable, ou n'appartient pas à cette entreprise/utilisateur.
  • status: 1 data : détail complet.
POST/api/v1/expenses/add

Crée une dépense (ou la modifie si id est fourni), avec upload optionnel du justificatif.

api_token requismultipart/form-data
ChampTypeDescription
api_tokenrequisstring
business_idrequisstringuid de l'entreprise.
idintFourni = modification.
amountrequisnumberMontant HT.
taxnumberTaux (%) — net_amount = amount + amount × tax / 100.
vendor, category, notes, date—Métadonnées.
filefichierJustificatif : pdf, gif, jpg, jpeg, png — 10 Mo max.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/expenses/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "amount=25000" -d "tax=18"

Réponse — succès

200 OK
{ "status": 1, "expense_id": 305, "message": "Expense created successfully" }

Paiements

Enregistrement des encaissements/décaissements liés aux factures.

Conversion de devise non finalisée

Le champ convert_amount renvoyé/stocké par ces endpoints tente une conversion automatique vers une devise fixe (XAF) qui n'aboutit pas dans le cas général : en l'absence de taux de change résolvable, l'endpoint renvoie simplement le montant d'origine sans le convertir. Ne vous fiez pas à convert_amount pour du multi-devises tant que ce point n'est pas confirmé/finalisé côté produit.

GET/api/v1/payments

Liste les paiements d'une entreprise, éventuellement filtrés par facture.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
invoice_idFiltre optionnel sur une facture précise.

Requête

cURL
curl "https://app.gecloud.me/api/v1/payments?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 875, "invoice_id": 1650, "business_id": "881777", "customer_id": 1275,
      "amount": "40000.000", "payment_date": "2026-07-19", "payment_method": "0",
      "type": "income", "...": "..." }
  ] }
POST/api/v1/payments/new

Enregistre un paiement sur une facture et met à jour son statut (payée / partiellement payée). Comptabilise automatiquement l'écriture pour les paiements de type revenu.

api_token requis
ChampTypeDescription
api_tokenrequisstringGET ou POST.
invoice_idrequisint
amountrequisnumber
business_uidrequisstring
payment_methodintVoir liste des moyens de paiement. Défaut : 0.
payment_datedateDéfaut : aujourd'hui.
note, typestringtype : income ou expense.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/payments/new \
  -d "api_token=xxxx" -d "invoice_id=501" -d "amount=50000" -d "business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "message": "Paiement enregistré avec succès", "invoice_status": "partiellement payée" }
POST/api/v1/payments/update/{id}

Modifie un paiement existant et recalcule le statut de la facture associée.

api_token requis
ChampTypeDescription
api_tokenrequisstringGET ou POST.
idrequisintSegment d'URL — identifiant du paiement.
invoice_id, amount, payment_methodrequis—
payment_date, note—Optionnels.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/payments/update/875 \
  -d "api_token=xxxx" -d "invoice_id=501" -d "amount=60000" -d "payment_method=1"

Réponse — succès

200 OK
{ "status": 1, "message": "Paiement mis à jour avec succès", "updated_payment": { "...": "..." } }
POST/api/v1/payments/delete/{id}

Supprime un paiement et recalcule automatiquement le statut de la facture associée (payée / partiellement payée / en attente).

api_token requis
ParamètreDescription
api_tokenrequisEn-tête Authorization, ou paramètre de requête à défaut.
idrequisSegment d'URL — identifiant du paiement.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/payments/delete/875 \
  -H "Authorization: xxxx"

Réponse — succès

200 OK
{ "status": 1, "message": "Paiement supprimé avec succès" }

Réponses possibles

  • status: 0 Jeton manquant/invalide, ou paiement introuvable / n'appartenant pas à l'utilisateur.
  • status: 1 Supprimé — le statut de la facture est réajusté automatiquement.
GET/api/v1/payments/methods

Liste statique des moyens de paiement disponibles.

Aucune authentification requise

Requête

cURL
curl "https://app.gecloud.me/api/v1/payments/methods"

Réponse — succès

200 OK
{ "status": 1, "message": "Liste des modes de paiement récupérée avec succès",
  "data": [
    { "id": 1, "name": "Virement Bancaire" }, { "id": 2, "name": "Cash" },
    { "id": 3, "name": "Chèque" }, { "id": 4, "name": "Stripe" },
    { "id": 5, "name": "Paypal" }, { "id": 6, "name": "Mobile Money" },
    { "id": 7, "name": "Autres Méthodes" }
  ] }

Produits

Catalogue d'articles vendables et/ou achetables, avec suivi de stock optionnel.

GET/api/v1/products/{type}

Liste les produits d'une entreprise, filtrés par usage.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_idrequisQuery string — uid de l'entreprise.
typeSegment d'URL : sell (défaut) ou buy.

Requête

cURL
curl "https://app.gecloud.me/api/v1/products/sell?api_token=xxxx&business_id=88123"

Réponse — succès

200 OK
{ "status": 1, "type": "sell", "data": [ { "id": 44, "name": "Prestation conseil", "price": 50000, "...": "..." } ] }
POST/api/v1/products/add

Crée un produit (ou le modifie si id est fourni).

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_idrequisstringuid de l'entreprise.
idintFourni = modification.
namerequisstring
pricerequisnumber
is_bothboolSi vrai, définit is_sell et is_buy à 1.
is_sell, is_buyboolUsage du produit.
income_category, expense_categoryintDéfaut : 0.
detailsstringDescription.
quantity, alert_quantityintSuivi de stock. Défaut : 0.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/products/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "name=Prestation conseil" -d "price=50000" -d "is_sell=1"

Réponse — succès

200 OK
{ "status": 1, "message": "Product added successfully", "id": 44 }

Prévisionnel

Entrées budgétaires prévisionnelles (revenus/dépenses futurs) pour la planification financière.

GET/api/v1/previsions

Liste les entrées prévisionnelles d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_idrequisQuery string — uid de l'entreprise.

Requête

cURL
curl "https://app.gecloud.me/api/v1/previsions?api_token=xxxx&business_id=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [ { "id": 61, "amount": 300000, "net_amount": 330000, "...": "..." } ] }
GET/api/v1/previsions/{id}

Détail d'une entrée prévisionnelle.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
idrequisSegment d'URL.

Requête

cURL
curl "https://app.gecloud.me/api/v1/previsions/61?api_token=xxxx"

Réponses possibles

  • status: 0 Introuvable, ou n'appartient pas à l'utilisateur.
  • status: 1 data : détail complet.
POST/api/v1/previsions/add

Crée une entrée prévisionnelle (ou la modifie si id est fourni).

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_idrequisstringuid de l'entreprise.
idintFourni = modification.
amountrequisnumber
taxnumberDéfaut : 0.
category, notes—
date_min, date_maxdatePériode prévisionnelle.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/previsions/add \
  -d "api_token=xxxx" -d "business_id=88123" -d "amount=300000" -d "date_min=2026-08-01" -d "date_max=2026-08-31"

Réponse — succès

200 OK
{ "status": 1, "prevision_id": 61, "message": "Prevision created successfully" }
DELETE/api/v1/previsions/delete/{id}

Supprime une entrée prévisionnelle.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
idrequisSegment d'URL.

Requête

cURL
curl "https://app.gecloud.me/api/v1/previsions/delete/61?api_token=xxxx"

Réponse — succès

200 OK
{ "status": 1, "message": "Prevision deleted" }

Comptabilité

Plan comptable OHADA, écritures et états financiers. Ces endpoints ne fonctionnent que pour une entreprise ayant la comptabilité activée (enable_accounting = 1).

Accès délégué (cabinets comptables)

En plus du propriétaire de l'entreprise, un cabinet comptable ayant un lien actif avec le périmètre accounting (écritures/plan comptable) ou reports (états financiers) accordé par le client peut appeler ces endpoints avec son propre api_token — inutile d'avoir les identifiants du client.

GET/api/v1/accounting/chart-of-accounts

Liste le plan comptable actif d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.

Requête

cURL
curl "https://app.gecloud.me/api/v1/accounting/chart-of-accounts?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 1383, "account_number": "512", "name": "Banque", "account_type": "asset",
      "account_class": "5", "is_active": 1, "...": "..." }
  ] }

Réponses possibles

  • status: 0 Jeton invalide, entreprise introuvable, accès refusé, ou comptabilité non activée pour cette entreprise.
  • status: 1 Liste des comptes.
POST/api/v1/accounting/chart-of-accounts/add

Crée un nouveau compte dans le plan comptable.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
account_numberrequisstringEx. "512".
namerequisstring
account_typerequisstringUne valeur parmi : asset, liability, equity, revenue, expense.
account_classintDéfaut : premier chiffre de account_number.
parent_idintCompte parent, pour une arborescence.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/accounting/chart-of-accounts/add \
  -d "api_token=xxxx" -d "business_uid=88123" -d "account_number=512" -d "name=Banque" -d "account_type=asset"

Réponse — succès

200 OK
{ "status": 1, "message": "Account created", "id": 1385 }
GET/api/v1/accounting/journal-entries

Liste les écritures comptables d'un exercice.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
fiscal_year_idDéfaut : exercice ouvert en cours.
journal_typeFiltre : AC (achats), VT (ventes), BQ (banque), CA (caisse), OD (opérations diverses).
from, toFiltre de dates (YYYY-MM-DD).

Requête

cURL
curl "https://app.gecloud.me/api/v1/accounting/journal-entries?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "fiscal_year_id": 18, "data": [
    { "id": 45, "journal_type": "OD", "date": "2026-07-21", "description": "Vente au comptant",
      "created_by_name": "Jean Dupont", "...": "..." }
  ] }
POST/api/v1/accounting/journal-entries/add

Crée une écriture comptable équilibrée (partie double).

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
linesrequisJSONTableau de {account_id, label, debit, credit}. Le total des débits doit égaler le total des crédits.
journal_typestringDéfaut : OD.
reference, description, date—date par défaut : aujourd'hui.
fiscal_year_idintDéfaut : exercice ouvert en cours.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/accounting/journal-entries/add \
  -d "api_token=xxxx" -d "business_uid=88123" -d "journal_type=OD" \
  -d "description=Vente au comptant" \
  --data-urlencode 'lines=[{"account_id":1383,"label":"Vente","debit":50000,"credit":0},
                            {"account_id":1384,"label":"Vente","debit":0,"credit":50000}]'

Réponses possibles

  • status: 0 Écriture déséquilibrée, compte hors du plan comptable de cette entreprise, ou aucun exercice ouvert.
  • status: 1 Écriture créée — id renvoyé.
GET/api/v1/accounting/financial-statements/income-statement

Compte de résultat : solde net (produits − charges) par compte, sur un exercice.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
fiscal_year_idDéfaut : exercice ouvert en cours.

Requête

cURL
curl "https://app.gecloud.me/api/v1/accounting/financial-statements/income-statement?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "fiscal_year_id": 18, "data": [
    { "account_number": "701", "name": "Ventes", "account_type": "revenue", "net_amount": "50000.000" }
  ] }

Note

La réponse liste un solde par compte (produits/charges non nuls) — pas de regroupement par rubrique OHADA pré-calculé ; à agréger côté client si besoin.

GET/api/v1/accounting/financial-statements/balance-sheet

Bilan : solde (débit − crédit) par compte d'actif/passif/capitaux propres, sur un exercice.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
fiscal_year_idDéfaut : exercice ouvert en cours.

Requête

cURL
curl "https://app.gecloud.me/api/v1/accounting/financial-statements/balance-sheet?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "fiscal_year_id": 18, "data": [
    { "account_number": "512", "name": "Banque", "account_type": "asset", "balance": "50000.000" }
  ] }
GET/api/v1/accounting/fiscal-year/current

Renvoie l'exercice comptable actuellement ouvert.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.

Requête

cURL
curl "https://app.gecloud.me/api/v1/accounting/fiscal-year/current?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": { "id": 18, "name": "2026", "start_date": "2026-01-01", "end_date": "2026-12-31", "status": "open" } }

Réponses possibles

  • status: 0 Aucun exercice ouvert pour cette entreprise.
  • status: 1 Exercice trouvé.

Rapprochement bancaire

Comptes bancaires, import de relevés et rapprochement avec les paiements enregistrés. Réservé aux entreprises avec enable_accounting=1, même règle d'accès que la Comptabilité (propriétaire ou cabinet avec périmètre accounting).

GET/api/v1/bank-accounts

Liste les comptes bancaires actifs d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string ou en-tête Authorization.
business_uidrequisQuery string.

Requête

cURL
curl "https://app.gecloud.me/api/v1/bank-accounts?business_uid=88123" \
  -H "Authorization: xxxx"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 5, "name": "Compte Ecobank", "account_type": "bank", "currency_code": "XOF",
      "initial_balance": "500000.000", "balance": "647500.000", "is_active": "1" }
  ] }
POST/api/v1/bank-accounts/add

Crée un compte bancaire, caisse ou mobile money.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
namerequisstring
account_typestringbank (défaut), cash ou mobile_money.
currency_codestring
initial_balancenumberDéfaut : 0.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/bank-accounts/add \
  -d "api_token=xxxx" -d "business_uid=88123" -d "name=Compte Ecobank" \
  -d "account_type=bank" -d "initial_balance=500000"

Réponse — succès

200 OK
{ "status": 1, "message": "Bank account created", "id": 5 }
GET/api/v1/bank-accounts/{id}/transactions

Liste les transactions d'un compte bancaire, avec le paiement associé si déjà rapproché.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
idrequisSegment d'URL — identifiant du compte bancaire.
from, toFiltre de dates (optionnel).
reconciled0 ou 1 pour filtrer par statut de rapprochement.

Requête

cURL
curl "https://app.gecloud.me/api/v1/bank-accounts/5/transactions?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 1, "date": "2026-07-15", "description": "Virement client ACME",
      "amount": "150000.000", "type": "credit", "reference": "VIR001",
      "payment_record_id": null, "is_reconciled": "0" }
  ] }
POST/api/v1/bank-accounts/{id}/transactions/add

Importe un lot de transactions bancaires (relevé) et recalcule automatiquement le solde du compte.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
idrequisintSegment d'URL.
transactionsrequisJSONTableau de {date, description, amount, type, reference} — type : credit ou debit.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/bank-accounts/5/transactions/add \
  -d "api_token=xxxx" -d "business_uid=88123" \
  --data-urlencode 'transactions=[{"date":"2026-07-15","description":"Virement client ACME","amount":150000,"type":"credit","reference":"VIR001"}]'

Réponse — succès

200 OK
{ "status": 1, "message": "2 transaction(s) imported" }
GET/api/v1/bank-transactions/{id}/suggestions

Suggère jusqu'à 5 paiements non rapprochés pouvant correspondre à cette transaction (même montant à ±0,01 près, date à ±3 jours).

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
idrequisSegment d'URL — identifiant de la transaction bancaire.

Requête

cURL
curl "https://app.gecloud.me/api/v1/bank-transactions/1/suggestions?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 876, "payment_date": "2026-07-16", "amount": "150000.000",
      "contact_name": "ACME SARL", "invoice_number": "FAC-0501" }
  ] }
POST/api/v1/bank-transactions/reconcile

Associe manuellement une transaction bancaire à un paiement enregistré.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
bank_txn_idrequisint
payment_record_idrequisint

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/bank-transactions/reconcile \
  -d "api_token=xxxx" -d "business_uid=88123" -d "bank_txn_id=1" -d "payment_record_id=876"

Réponse — succès

200 OK
{ "status": 1, "message": "Transaction reconciled" }

Réponses possibles

  • status: 0 Champs manquants, ou la transaction/le paiement n'appartient pas à cette entreprise.
  • status: 1 Rapproché.
POST/api/v1/bank-transactions/unreconcile

Annule un rapprochement existant.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
bank_txn_idrequisint

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/bank-transactions/unreconcile \
  -d "api_token=xxxx" -d "business_uid=88123" -d "bank_txn_id=1"

Réponse — succès

200 OK
{ "status": 1, "message": "Transaction unreconciled" }
GET/api/v1/bank-accounts/{id}/summary

Résumé du rapprochement d'un compte : totaux crédits/débits et part déjà rapprochée.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
idrequisSegment d'URL.
from, toFiltre de dates (optionnel).

Requête

cURL
curl "https://app.gecloud.me/api/v1/bank-accounts/5/summary?api_token=xxxx&business_uid=88123"

Réponse — succès

200 OK
{ "status": 1, "data": {
    "total_credit": "150000.000", "total_debit": "2500.000",
    "reconciled_credit": "150000.000", "reconciled_debit": "0.000",
    "total_txn": "2", "reconciled_txn": "1" } }

Catégories (revenus/dépenses)

Catégories utilisées pour classer les produits, dépenses et entrées prévisionnelles. À ne pas confondre avec les catégories d'entreprise (secteur d'activité), qui sont une référence globale distincte.

GET/api/v1/categories

Liste les catégories de revenus et/ou de dépenses d'une entreprise.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
business_uidrequisQuery string.
typeincome ou expense. Omis = renvoie les deux, regroupées.

Requête

cURL
curl "https://app.gecloud.me/api/v1/categories?api_token=xxxx&business_uid=88123&type=expense"

Réponse — succès (avec type)

200 OK
{ "status": 1, "data": [
    { "id": 465, "name": "Fournitures bureau", "slug": "fournitures-bureau", "type": "2" }
  ] }

Réponse — succès (sans type)

200 OK
{ "status": 1, "data": {
    "income": [ { "id": 464, "name": "Ventes marchandises", "type": "1" } ],
    "expense": [ { "id": 465, "name": "Fournitures bureau", "type": "2" } ] } }
POST/api/v1/categories/add

Crée une catégorie de revenu ou de dépense.

api_token requis
ChampTypeDescription
api_tokenrequisstring
business_uidrequisstring
namerequisstring
typerequisstringincome ou expense.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/categories/add \
  -d "api_token=xxxx" -d "business_uid=88123" -d "name=Ventes marchandises" -d "type=income"

Réponse — succès

200 OK
{ "status": 1, "message": "Category created", "id": 464 }

Espace Cabinet

Réservé aux comptes cabinet comptable (profile_type = 'cabinet'). Permet de gérer les clients — qu'ils aient un compte geCloud (invitation) ou non (dossier).

GET/api/v1/cabinet/clients

Liste les clients (comptes liés + dossiers) du cabinet authentifié.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.
statusFiltre optionnel : pending, active, suspended, revoked.

Requête

cURL
curl "https://app.gecloud.me/api/v1/cabinet/clients?api_token=xxxx"

Réponse — succès

200 OK
{ "status": 1, "data": [
    { "id": 13, "client_business_id": 385, "status": "active", "is_dossier": 1,
      "client_name": "Boulangerie Test", "client_email": "contact@test.local",
      "scope": "{\"accounting\":true,\"reports\":true,\"invoices\":true,\"expenses\":true}", "...": "..." }
  ] }

Réponses possibles

  • status: 0 Jeton invalide, ou ce compte n'est pas un cabinet comptable.
  • status: 1 Liste des clients.
POST/api/v1/cabinet/dossiers/add

Crée un dossier client — pour un client qui n'a pas de compte geCloud. Le cabinet gère directement sa comptabilité, sans invitation ni acceptation.

api_token requis
ChampTypeDescription
api_tokenrequisstring
namerequisstringRaison sociale du dossier.
contact_email, contact_phonestringCoordonnées du dossier (aucun compte réel n'est créé).
scopeJSONDéfaut : accès complet (accounting, reports, invoices, expenses à true).

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/cabinet/dossiers/add \
  -d "api_token=xxxx" -d "name=Boulangerie Test" -d "contact_email=contact@test.local"

Réponse — succès

200 OK
{ "status": 1, "message": "Dossier créé.", "link_id": 13, "business_id": 385, "business_uid": "59862" }

Réponses possibles

  • status: 0 Nom manquant, ou limite de dossiers du forfait cabinet atteinte.
  • status: 1 Dossier créé — business_uid à réutiliser sur les endpoints Comptabilité.
POST/api/v1/cabinet/invite

Invite un client déjà inscrit sur geCloud à accorder l'accès au cabinet, par email.

api_token requis
ChampTypeDescription
api_tokenrequisstring
client_emailrequisstringEmail du compte geCloud du client.
scopeJSONDéfaut : accès complet.

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/cabinet/invite \
  -d "api_token=xxxx" -d "client_email=client@exemple.com"

Réponse — succès

200 OK
{ "status": 1, "message": "Invitation sent", "link_id": 14 }

Réponses possibles

  • status: 0 Email manquant, aucun compte geCloud à cette adresse, déjà lié ou invitation en attente, ou limite du forfait cabinet atteinte.
  • status: 1 Invitation envoyée — en attente d'acceptation par le client.
POST/api/v1/cabinet/revoke/{link_id}

Révoque l'accès à un client (ou supprime le lien avec un dossier).

api_token requis
ParamètreDescription
api_tokenrequisChamp de formulaire.
link_idrequisSegment d'URL — identifiant du lien (renvoyé par la liste des clients).

Requête

cURL
curl -X POST https://app.gecloud.me/api/v1/cabinet/revoke/13 \
  -d "api_token=xxxx"

Réponse — succès

200 OK
{ "status": 1, "message": "Access revoked" }

Réponses possibles

  • status: 0 Lien introuvable, ou n'appartient pas à ce cabinet.
  • status: 1 Accès révoqué.

Abonnement

Consultation en lecture seule du forfait actif de l'utilisateur authentifié et de sa consommation par rapport aux limites de ce forfait.

GET/api/v1/subscription

Renvoie le plan actif de l'utilisateur, ses limites, et sa consommation actuelle.

api_token requis
ParamètreDescription
api_tokenrequisQuery string.

Requête

cURL
curl "https://app.gecloud.me/api/v1/subscription?api_token=xxxx"

Réponse — succès (avec abonnement actif)

200 OK
{ "status": 1,
  "plan": { "package_id": 2, "package_name": "STARTER", "package_slug": "starter",
            "billing_type": "yearly", "status": "verified", "expire_on": "2027-07-21" },
  "limits": { "business": 3, "customer": 500, "invoice": 200, "estimate": 100, "user-roles": 2 },
  "usage":  { "business": 1, "customer": 42, "invoice": 18, "estimate": 5 } }

Réponse — succès (aucun abonnement actif)

200 OK
{ "status": 1, "plan": null, "message": "No active subscription" }

Note

Dans limits, -2 signifie illimité, -1/0 signifie fonctionnalité désactivée sur ce forfait, toute autre valeur est un plafond numérique.

Référence

Données statiques utiles pour remplir vos formulaires (aucune authentification requise).

GET/api/v1/countries

Liste complète des pays, avec leurs identifiants utilisés dans le reste de l'API (champ country).

Aucune authentification requise

Requête

cURL
curl "https://app.gecloud.me/api/v1/countries"

Réponse — succès

200 OK
{ "status": 1, "message": "Liste des pays récupérée avec succès",
  "data": [ { "id": 21, "name": "Benin", "code": "BJ", "dial_code": "+229", "currency_symbol": "F", "currency_name": "West African Franc" } ] }
GET/api/v1/account-categories

Liste des catégories d'entreprise disponibles.

Aucune authentification requise

Requête

cURL
curl "https://app.gecloud.me/api/v1/account-categories"

Réponse — succès

200 OK
{ "status": 1, "message": "Liste des catégories de compte récupérée avec succès",
  "data": [ { "id": 3, "name": "Commerce & Distribution" } ] }

Documentation geCloud API — gecloud.me