Passer au contenu principal
Les événements sont la base de la facturation basée sur l’utilisation. Envoyez des événements lorsque des actions facturables se produisent, et les compteurs les agrègent en charges.

Référence API - Ingestion d'événements

Documentation API complète avec exemples et codes de réponse.

Structure de l’événement

event_id
string
required
Identifiant unique. Utilisez des UUID ou combinez l’ID client + horodatage + action.
customer_id
string
required
ID client de Dodo Payments. Doit être un client existant valide.
event_name
string
required
Type d’événement qui correspond au nom de l’événement de votre compteur (sensible à la casse). Exemples : api.call, image.generated
timestamp
string
Horodatage ISO 8601. Par défaut, utilise l’heure du serveur si omis. Inclure pour une facturation précise avec des événements retardés/en lot.
metadata
object
Propriétés supplémentaires pour l’agrégation et le filtrage :
  • Valeurs numériques : bytes, tokens, duration_ms
  • Filtres : endpoint, method, quality
metadata: {
  endpoint: "/v1/orders",
  method: "POST",
  tokens: 1024
}

Envoi d’événements

await fetch('https://test.dodopayments.com/events/ingest', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.DODO_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    events: [{
      event_id: "api_call_1234",
      customer_id: "cus_abc123",
      event_name: "api.call",
      metadata: { endpoint: "/v1/orders" }
    }]
  })
});
Regroupez jusqu’à 100 événements par requête pour de meilleures performances.

Modèles d’ingestion

Modèles d’événements prêts à l’emploi pour des cas d’utilisation courants. Commencez avec un modèle éprouvé au lieu de construire à partir de zéro.

Meilleures pratiques

Utilisez des ID déterministes pour éviter les doublons : ${customerId}_${action}_${timestamp}
Réessayez en cas d’erreurs 5xx avec un backoff exponentiel. Ne réessayez pas les erreurs 4xx.
Omettez pour les événements en temps réel. Incluez pour les événements retardés/en lot pour plus de précision.
Suivez les taux de succès et mettez en file d’attente les événements échoués pour réessai.

Dépannage

  • Le nom de l’événement doit correspondre exactement au compteur (sensible à la casse)
  • L’ID client doit exister
  • Vérifiez que les filtres du compteur n’excluent pas les événements
  • Vérifiez que les horodatages sont récents
Vérifiez que la clé API est correcte et utilisez le format : Bearer YOUR_API_KEY
Assurez-vous que tous les champs requis sont présents : event_id, customer_id, event_name
  • Les clés de métadonnées doivent correspondre exactement à “Over Property” du compteur
  • Utilisez des nombres, pas des chaînes : tokens: 150 pas tokens: "150"

Prochaines étapes