Envoyer des e-mails et des transactions via l'API Adapty Mail
L’API Adapty Mail vous permet d’envoyer des profils utilisateurs et des transactions à Adapty Mail directement depuis votre serveur, sans passer par le SDK Adapty. Utilisez-la lorsque vous souhaitez :
- Ajoutez des abonnés quand vous n’avez pas encore de base dans Adapty Mail.
- Réutilisez la base d’abonnés de vos autres apps.
- Alimentez Adapty Mail en serveur à serveur, avec votre backend comme source de vérité.
API ou SDK ? La plupart des applications envoient des données à Adapty Mail via le SDK Adapty, qui collecte automatiquement les e-mails et les achats — voir Connecter Adapty à Adapty Mail. Choisissez l’API lorsque votre application n’intègre pas le SDK Adapty, que les données se trouvent déjà sur votre serveur, ou que vous importez des abonnés depuis une autre source. Vous pouvez également utiliser l’API en parallèle d’un autre point d’entrée : Adapty Mail rapproche les données entrantes sur le customer_user_id et l’adresse e-mail, et conserve un seul profil par personne.
Avant de commencer
Terminez la configuration d’Adapty Mail avant d’envoyer des données — c’est-à-dire une campagne, des segments (si nécessaire), un paywall web et un flow lancé. Adapty Mail envoie des e-mails uniquement aux profils créés après cette configuration ; les profils envoyés avant ne recevront aucun e-mail. Suivez d’abord Démarrer avec Adapty Mail, puis revenez ici.
Vous avez également besoin de votre clé API et de votre URL de base :
- Clé API secrète : Dans Adapty Mail, rendez-vous dans Settings et copiez votre clé API secrète. La clé est propre à votre projet, ce qui permet à l’API d’identifier à quel projet les données appartiennent.
- URL de base : Toutes les requêtes sont envoyées à
https://api-mail.adapty.io. - Authentification : Envoyez la clé dans l’en-tête Authorization sous la forme
Bearer {your_secret_api_key}.
Obtenez un consentement explicite avant de collecter des adresses e-mail et de les envoyer à Adapty Mail. Vous êtes responsable du respect du RGPD, du CAN-SPAM et des réglementations similaires applicables dans vos marchés.
Envoyer des profils utilisateurs
Un profil contient l’adresse e-mail et les attributs de l’utilisateur. Pour en créer ou en mettre à jour un, envoyez une requête POST à /api/v1/profile/save/.
Trois champs sont obligatoires :
- Un
external_profile_idstable, géré par votre application ou votre backend - L’
emailauquel Adapty Mail envoie les campagnes external_created_at— la date de création de l’utilisateur, utilisable dans les segments
Envoyez toujours un external_profile_id stable, jamais une valeur anonyme ou propre à une installation. Adapty Mail s’en sert pour associer e-mails, clics et achats à un seul profil.
Si la même personne accède également à Adapty Mail via le SDK, ajoutez customer_user_id — votre propre identifiant utilisateur, celui que vous passez à Adapty.identify(). Adapty Mail s’appuie dessus pour rattacher les deux sources à un seul profil, plutôt que de créer un doublon qui enverrait deux fois le même e-mail.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/save/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"external_profile_id": "user_12345",
"external_created_at": "2026-06-01T10:30:00Z",
"email": "jane@example.com",
"country": "US",
"custom_attributes": {
"plan": "trial"
}
}'
Consultez la référence Save profile pour tous les champs disponibles.
Envoyer des événements de transaction
Un profil avec une adresse e-mail suffit pour atteindre les utilisateurs dans le flow never purchased. Les utilisateurs dans tous les autres flows ont également besoin d’événements de transaction.
Tous les flows sauf never purchased sont pilotés par l’historique des achats. Envoyez les événements de transaction d’un profil au fur et à mesure que vous gérez les achats, les renouvellements et les annulations, afin qu’Adapty Mail puisse le placer dans le bon flow. Les événements de transaction alimentent également l’attribution des revenus. Ne les ignorez que si vous menez exclusivement des campagnes never purchased.
Pour enregistrer une transaction, envoyez une requête POST à /api/v1/profile/transaction-event/save/. Utilisez le même external_profile_id que celui envoyé avec le profil afin qu’Adapty Mail associe la transaction au bon utilisateur.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/transaction-event/save/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"event_type": "subscription_started",
"event_id": "evt_abc123",
"event_datetime": "2026-06-10T14:20:05Z",
"external_profile_id": "user_12345",
"store": "app_store",
"store_product_id": "premium_monthly",
"store_transaction_id": "1000000123456789",
"store_original_transaction_id": "1000000123456789",
"purchased_at": "2026-06-10T14:20:00Z",
"originally_purchased_at": "2026-06-10T14:20:00Z",
"price_usd": "9.99"
}'
Consultez la référence Save transaction event pour tous les champs disponibles.
Vous pouvez envoyer une transaction avant que le profil existe. Adapty Mail conserve l’événement non attaché, puis le lie au profil lors du prochain enregistrement incluant le même external_profile_id.
Supprimer un profil
Pour répondre à une demande de droit à l’effacement, envoyez les identifiants du profil à /api/v1/profile/delete/. Adapty Mail efface les données personnelles du profil et annule ses e-mails planifiés.
curl --request POST \
--url 'https://api-mail.adapty.io/api/v1/profile/delete/' \
--header 'Authorization: Bearer {your_secret_api_key}' \
--header 'Content-Type: application/json' \
--data '{
"external_profile_id": "user_12345"
}'
Identifiez le profil par external_profile_id, customer_user_id ou email — envoyez au moins un de ces identifiants. La suppression est définitive : une sauvegarde ultérieure portant les mêmes identifiants ne recrée pas le profil.
Pour sécuriser une nouvelle tentative, identifiez le profil par external_profile_id ou customer_user_id. Répéter une suppression effectuée uniquement avec email renvoie 404, car la suppression efface l’adresse stockée. Consultez la référence Supprimer un profil pour plus de détails.
Associez vos événements aux flows
Envoyez le event_type qui correspond à ce qui s’est passé. Adapty Mail déduit l’état du profil à partir de son historique d’événements et le dirige vers le flow correspondant.
event_type | L’envoyer quand | Flow |
|---|---|---|
subscription_started | Un utilisateur démarre un nouvel abonnement. | Actif — pas de flow de réengagement |
subscription_renewed | Un abonnement se renouvelle automatiquement. | Actif — pas de flow de réengagement |
subscription_renewal_reactivated | Un utilisateur réactive le renouvellement automatique. | Actif — pas de flow de réengagement |
non_subscription_purchase | Un utilisateur effectue un achat unique. | Actif — pas de flow de réengagement |
subscription_renewal_cancelled | Un utilisateur désactive le renouvellement automatique (l’abonnement reste actif jusqu’à expiration). | Renouvellement annulé |
billing_issue_detected | Un paiement de renouvellement échoue. | Problème de facturation |
entered_grace_period | Le paiement échoue mais l’utilisateur est encore dans le délai de grâce. | Problème de facturation |
subscription_expired | Un abonnement expire et l’accès prend fin. | Expiré |
subscription_refunded | Un achat d’abonnement est remboursé. | Remboursé |
non_subscription_purchase_refunded | Un achat unique est remboursé. | Remboursé |