Tickets

Connecte-toi pour accéder à ton espace.

Tickets 0

Sprint actuel :
Tous les sprints — glisse un ticket sur un chip pour le déplacer
Ajouter un client
Clients
NomTJMTicketsJours livrés
Inbox — demandes en attente Soumises par les clients
Archive (acceptées + refusées)
Milestones
Rapport d'activité
Factures
N°DateClientPériodeJoursMontant HTStatut
Chiffre d'affaires
Livre des recettes
Registre chronologique des recettes encaissées (obligatoire pour les micro-entrepreneurs).
Date encaissementN° factureClientModeMontant HT
Export URSSAF
Génère un CSV des recettes encaissées sur une période. Les valeurs HT sont à reporter sur autoentrepreneur.urssaf.fr.
Profil émetteur (apparaît sur les factures)
Créer un compte client
Comptes
EmailRôleClientCréé
Tokens API — pour le CLI ou tout client headless. Hérite de ton rôle (admin).
NomCréé leDernière utilisation
Soumettre une demande
Historique de mes demandes
Tokens API — pour soumettre / consulter via la ligne de commande
NomCréé leDernière utilisation
Utiliser l'API

Toutes les actions ci-dessous se font avec ton token API en en-tête Authorization: Bearer tk_…. Le token hérite de ton rôle client : tu n'as accès qu'à ta data.

Base URL : https://tickets.nicolas2bert.com

Vérifier ton token
curl -H "Authorization: Bearer $TOKEN" \
  https://tickets.nicolas2bert.com/api/me
Soumettre une demande (sans pièce jointe)
curl -X POST https://tickets.nicolas2bert.com/api/ticket-requests \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Crash quand on importe un fichier CSV",
    "description": "Reproduit avec 2 lignes vides en début de fichier.",
    "type": "bug",
    "priority": "high"
  }'
Soumettre une demande avec pièces jointes (max 5 fichiers, 10 Mo chacun)
curl -X POST https://tickets.nicolas2bert.com/api/ticket-requests \
  -H "Authorization: Bearer $TOKEN" \
  -F "title=Crash quand on importe un CSV" \
  -F "description=Voir captures jointes" \
  -F "type=bug" \
  -F "priority=high" \
  -F "files=@screenshot.png" \
  -F "files=@logs.txt"
Lister toutes tes demandes
curl -H "Authorization: Bearer $TOKEN" \
  https://tickets.nicolas2bert.com/api/ticket-requests

# Filtrer par statut :
curl -H "Authorization: Bearer $TOKEN" \
  "https://tickets.nicolas2bert.com/api/ticket-requests?status=pending"
curl -H "Authorization: Bearer $TOKEN" \
  "https://tickets.nicolas2bert.com/api/ticket-requests?status=accepted"
curl -H "Authorization: Bearer $TOKEN" \
  "https://tickets.nicolas2bert.com/api/ticket-requests?status=rejected"
Suivre l'avancement (milestones, factures, mission)
# Milestones avec progression
curl -H "Authorization: Bearer $TOKEN" \
  https://tickets.nicolas2bert.com/api/milestones

# Tickets liés à une milestone (renvoie titres + statuts, pas de jours/€)
curl -H "Authorization: Bearer $TOKEN" \
  "https://tickets.nicolas2bert.com/api/tickets?milestone_id=1"

# Tes factures
curl -H "Authorization: Bearer $TOKEN" \
  https://tickets.nicolas2bert.com/api/invoices

# Détails mission
curl -H "Authorization: Bearer $TOKEN" \
  https://tickets.nicolas2bert.com/api/clients/<ton-client-id>
Réponses
Format JSON. Codes HTTP : 200 succès · 400 requête invalide · 401 token absent/invalide · 403 tu tentes d'accéder à une autre data · 404 introuvable. Les erreurs renvoient {"error":"…"}.
Mes factures
N°DatePériodeJoursMontant HTStatut

Mission

Détails de la mission (apparaissent sur les factures et la vue client).
Documents contractuels

Accepter la demande

Enrichis la demande et crée le ticket associé.

Refuser la demande

La raison (optionnelle) sera visible côté client.

Topics du client

Associe un préfixe de titre de ticket (ex : LOG) à un libellé lisible côté client (ex : Logging & observability). Les tickets dont le titre commence par ce préfixe seront regroupés automatiquement.
Mappings existants
PréfixeLibellé
Préfixes détectés (non mappés)

Nouvelle milestone

Un objectif business qui couvre plusieurs sprints (ex : "Production + HDS validée — 3 mois").

Nouveau ticket

Ajouter une tâche au sprint.

Marquer la facture payée

Date d'encaissement + mode de paiement.

Nouvelle facture

Sélectionne client + période, puis clique Prévisualiser. Les jours sont calculés à partir des heures loggées dans Mon mois sur la période (heures ÷ 8).
Télécharger PDF

Importer des tickets (CSV)

Colle un CSV avec un en-tête. Tickets ajoutés au sprint actuel par défaut.
Format attendu : CSV avec en-tête (1ère ligne = noms des colonnes).
Colonnes obligatoires : client, title.
Colonnes optionnelles : description (multi-lignes), estimate_days (jours, défaut 0), sprint, status (todo/doing/done), priority (high/medium/low), milestone (nom — créée à la volée si nouvelle), topic (catégorie, visible côté client).
TJM : pas dans le CSV — défini par client dans l'onglet Clients. Les clients nouveaux créés par l'import auront un TJM à 0, à compléter ensuite.
Doublons : un ticket avec le même title chez le même client est repéré comme doublon. Par défaut il est ignoré ; coche la case Mettre à jour les doublons pour réécrire description/estimate_days/sprint/status sur le ticket existant.
Séparateur : virgule.
Valeurs avec virgules → entoure de guillemets : "Bug #72, badges sur cards".
Multi-lignes accepté → la valeur doit être entre guillemets, et un retour à la ligne dans la cellule est conservé tel quel.
Guillemet à l'intérieur → doublé ("").
client,title,description,estimate_days,sprint,priority,milestone,topic
Logopouce,SEC-1 cookie secure,"Empêcher
l'app de booter si SESSION_SECRET manquant.",0.5,Sprint Mai,high,Production + HDS validée,Sécurité
Logopouce,DB-1 index sur users,"Améliorer requêtes",0.25,Sprint Mai,medium,Production + HDS validée,Performance
ACME,Auth refactor,,2,Backlog,low,,
— doublon = même titre + même client