{"timestamp":"2026-02-14 12:11:22","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1t9SeckSPvqkIBuSmFbKxGOEBDUODFmwHMDGDvaL8AnFfa2k2rdoGH69Q","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 12:13:07","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0gmcCmOXyFMbarNLxSgOiB","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:07","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0gljCmOXyFMbarDuxq7yqZ","customer_id":"cus_Tye3vAvVVI0HEr","payment_method":"pm_1T0glhCmOXyFMbarkPKcJ2rU","subscription_id":null,"all_metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:07","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:08","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0gljCmOXyFMbarDuxq7yqZ","customer_id":"cus_Tye3vAvVVI0HEr","metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:09","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0gmeCmOXyFMbarf03BriUy","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:09","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1t9SeckSPvqkIBuSmFbKxGOEBDUODFmwHMDGDvaL8AnFfa2k2rdoGH69Q","customer_id":"cus_Tye3vAvVVI0HEr","payment_status":"paid","subscription_id":"sub_1T0gmdCmOXyFMbarw2SExza9","mode":"subscription","metadata":{"plan_id":"agency_pro","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:09","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0gmdCmOXyFMbarw2SExza9","status":"active","customer_id":"cus_Tye3vAvVVI0HEr","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:09","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0gmfCmOXyFMbarQlbaikQK","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:09","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0gliCmOXyFMbarcY5UM91y","subscription_id":null,"amount_paid":0,"customer_id":"cus_Tye3vAvVVI0HEr"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:10","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0gmfCmOXyFMbarhsu17fss","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:10","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0gmdCmOXyFMbarw2SExza9","customer_id":"cus_Tye3vAvVVI0HEr","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:10","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_Tye3vAvVVI0HEr","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:10","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0gmdCmOXyFMbarw2SExza9","session_id":"cs_live_b1t9SeckSPvqkIBuSmFbKxGOEBDUODFmwHMDGDvaL8AnFfa2k2rdoGH69Q"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:13:10","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_Tye3vAvVVI0HEr","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:23:01","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b19QauM3A1UDxh4Dxo9RaQKgZzUExj33kOx7iIVnClRzcTQ74taNo3H303","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6PCmOXyFMbarwayrQNPn"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 12:24:16","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0gxPCmOXyFMbarNeYDFUC2","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:16","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0gwkCmOXyFMbarB4cyKw3h","customer_id":"cus_TyeEydRDilxhXN","payment_method":"pm_1T0gwjCmOXyFMbargv4RhaH2","subscription_id":null,"all_metadata":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:16","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:16","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0gwkCmOXyFMbarB4cyKw3h","customer_id":"cus_TyeEydRDilxhXN","metadata":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:17","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0gxQCmOXyFMbarb0Sph2eA","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:17","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b19QauM3A1UDxh4Dxo9RaQKgZzUExj33kOx7iIVnClRzcTQ74taNo3H303","customer_id":"cus_TyeEydRDilxhXN","payment_status":"paid","subscription_id":"sub_1T0gxPCmOXyFMbaryhlWzKe9","mode":"subscription","metadata":{"plan_id":"agency_max","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:17","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0gxPCmOXyFMbaryhlWzKe9","status":"active","customer_id":"cus_TyeEydRDilxhXN","plan_id":"agency_max"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_TyeEydRDilxhXN","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0gxPCmOXyFMbaryhlWzKe9","session_id":"cs_live_b19QauM3A1UDxh4Dxo9RaQKgZzUExj33kOx7iIVnClRzcTQ74taNo3H303"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0gxRCmOXyFMbarcL75l27B","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0gwjCmOXyFMbarpb1idk8A","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyeEydRDilxhXN"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0gxRCmOXyFMbar1xmdrxTr","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0gxPCmOXyFMbaryhlWzKe9","customer_id":"cus_TyeEydRDilxhXN","status":"active","plan_id":"agency_max"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:24:18","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_TyeEydRDilxhXN","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:27:59","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b19EpDqBPQSUq16kHeZSUd49XN30cW9PhB1zzu50A1gqJdIxquf9E4neaO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 12:29:23","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0h2MCmOXyFMbarr2Wbfsmc","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:23","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0h1cCmOXyFMbarzwww0HGI","customer_id":"cus_TyeJYMhbf3fIBk","payment_method":"pm_1T0h1bCmOXyFMbar5tX96qfH","subscription_id":null,"all_metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:23","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:23","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0h1cCmOXyFMbarzwww0HGI","customer_id":"cus_TyeJYMhbf3fIBk","metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:24","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0h2OCmOXyFMbarsZgbycKN","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:24","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b19EpDqBPQSUq16kHeZSUd49XN30cW9PhB1zzu50A1gqJdIxquf9E4neaO","customer_id":"cus_TyeJYMhbf3fIBk","payment_status":"paid","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","mode":"subscription","metadata":{"plan_id":"agency_pro","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","status":"active","customer_id":"cus_TyeJYMhbf3fIBk","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771068516},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","stripe_customer_id":"cus_TyeJYMhbf3fIBk","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 11:29:25","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:25","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","p_stripe_customer_id":"cus_TyeJYMhbf3fIBk","p_status":"active","p_current_period_start":"2026-02-14T11:28:36Z","p_current_period_end":"2026-03-14T11:28:36Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:25","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:25","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","session_id":"cs_live_b19EpDqBPQSUq16kHeZSUd49XN30cW9PhB1zzu50A1gqJdIxquf9E4neaO"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0h2PCmOXyFMbarrtNXK8Wz","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:25","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0h1cCmOXyFMbarlJPOWsBg","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyeJYMhbf3fIBk"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0h2PCmOXyFMbarBQUl7Shl","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","customer_id":"cus_TyeJYMhbf3fIBk","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771068516},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","stripe_customer_id":"cus_TyeJYMhbf3fIBk","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 11:29:26","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","created_at":"2026-02-14 11:28:36"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:29:26","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:26","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","p_stripe_customer_id":"cus_TyeJYMhbf3fIBk","p_status":"active","p_current_period_start":"2026-02-14T11:28:36Z","p_current_period_end":"2026-03-14T11:28:36Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:26","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:29:26","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:38:26","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b14OAK2HAa95ASXlj8GD5uzSJXMGfX0zxPFINSUjZd0L4mTuEpIqTt4tMz","user_id":"test-verification-1771069105","mode":"subscription","price_id":"price_1SkL6PCmOXyFMbarwayrQNPn"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"curl\/8.7.1"} {"timestamp":"2026-02-14 12:50:42","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1WQ1oIzoPxqzZyjTniPOb6ZXDduamviGl4iy5tbzQrytqIFpbnfv1seJF","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6QCmOXyFMbarmftER0RQ"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 12:53:49","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0hQ1CmOXyFMbaroCjnTPMp","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:49","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0hPGCmOXyFMbarj3GpwxCj","customer_id":"cus_TyegxCGAiftIb9","payment_method":"pm_1T0hPFCmOXyFMbarjBnHq3nn","subscription_id":null,"all_metadata":[]},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:49","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:50","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0hPGCmOXyFMbarj3GpwxCj","customer_id":"cus_TyegxCGAiftIb9","metadata":[]},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:51","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0hQ3CmOXyFMbarC3uMs6AO","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:51","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1WQ1oIzoPxqzZyjTniPOb6ZXDduamviGl4iy5tbzQrytqIFpbnfv1seJF","customer_id":"cus_TyegxCGAiftIb9","payment_status":"paid","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","mode":"subscription","metadata":{"plan_id":"agency_starter","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:51","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","status":"active","customer_id":"cus_TyegxCGAiftIb9","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771069982},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","stripe_customer_id":"cus_TyegxCGAiftIb9","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 11:53:52","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:52","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","p_stripe_customer_id":"cus_TyegxCGAiftIb9","p_status":"active","p_current_period_start":"2026-02-14T11:53:02Z","p_current_period_end":"2026-03-14T11:53:02Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:52","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:52","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","session_id":"cs_live_b1WQ1oIzoPxqzZyjTniPOb6ZXDduamviGl4iy5tbzQrytqIFpbnfv1seJF"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0hQ3CmOXyFMbarjf1nrXPm","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0hPGCmOXyFMbarc9Rmzvbb","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyegxCGAiftIb9"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0hQ3CmOXyFMbarmJc3xvj4","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:52","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","customer_id":"cus_TyegxCGAiftIb9","status":"active","plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771069982},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","stripe_customer_id":"cus_TyegxCGAiftIb9","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 11:53:53","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z","created_at":"2026-02-14 11:53:02"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 12:53:53","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:53","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","p_stripe_customer_id":"cus_TyegxCGAiftIb9","p_status":"active","p_current_period_start":"2026-02-14T11:53:02Z","p_current_period_end":"2026-03-14T11:53:02Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:53","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 12:53:53","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:04:24","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1TLGE2PNbvUhx4MkkrShQ3KIkhizViy42tlAgGLkRROVpNUsMGDh8T7W4","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 13:06:19","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0hc7CmOXyFMbart74mLVTp","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:19","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0harCmOXyFMbardd5xQG6G","customer_id":"cus_Tyeukhm7L62Y27","payment_method":"pm_1T0haqCmOXyFMbarekAYHvBE","subscription_id":null,"all_metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:19","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:19","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0harCmOXyFMbardd5xQG6G","customer_id":"cus_Tyeukhm7L62Y27","metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0hc8CmOXyFMbarvbsRtSXB","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1TLGE2PNbvUhx4MkkrShQ3KIkhizViy42tlAgGLkRROVpNUsMGDh8T7W4","customer_id":"cus_Tyeukhm7L62Y27","payment_status":"paid","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","mode":"subscription","metadata":{"plan_id":"agency_pro","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","status":"active","customer_id":"cus_Tyeukhm7L62Y27","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:21","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":1},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771070700},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","stripe_customer_id":"cus_Tyeukhm7L62Y27","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 12:06:22","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","p_stripe_customer_id":"cus_Tyeukhm7L62Y27","p_status":"active","p_current_period_start":"2026-02-14T12:05:00Z","p_current_period_end":"2026-03-14T12:05:00Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0hc9CmOXyFMbarKkf9yhAW","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0haqCmOXyFMbar2jMdvsHe","subscription_id":null,"amount_paid":0,"customer_id":"cus_Tyeukhm7L62Y27"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","session_id":"cs_live_b1TLGE2PNbvUhx4MkkrShQ3KIkhizViy42tlAgGLkRROVpNUsMGDh8T7W4"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0hc9CmOXyFMbary3vKLLd3","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","customer_id":"cus_Tyeukhm7L62Y27","status":"active","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":1},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771070700},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","stripe_customer_id":"cus_Tyeukhm7L62Y27","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 12:06:22","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z","created_at":"2026-02-14 12:05:00"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","p_stripe_customer_id":"cus_Tyeukhm7L62Y27","p_status":"active","p_current_period_start":"2026-02-14T12:05:00Z","p_current_period_end":"2026-03-14T12:05:00Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:06:22","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:36:56","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b19aJUx8gOlIlAJ1oJwIEy0HdQs6vZ2znpiN1LoPDPVR8QaKkt7fPnBaOu","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","mode":"subscription","price_id":"price_1SkL6PCmOXyFMbarwayrQNPn"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 13:38:48","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0i7XCmOXyFMbarx8zUxmI3","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:48","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0i6ECmOXyFMbarVOdi3ZTk","customer_id":"cus_TyfQe9d5Fu14PO","payment_method":"pm_1T0i6DCmOXyFMbarGJ74x4TA","subscription_id":null,"all_metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:48","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:48","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0i6ECmOXyFMbarVOdi3ZTk","customer_id":"cus_TyfQe9d5Fu14PO","metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:49","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0i7ZCmOXyFMbaryFywotS9","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:49","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b19aJUx8gOlIlAJ1oJwIEy0HdQs6vZ2znpiN1LoPDPVR8QaKkt7fPnBaOu","customer_id":"cus_TyfQe9d5Fu14PO","payment_status":"paid","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","mode":"subscription","metadata":{"plan_id":"agency_max","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","source":"web","account_type":"agency"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:49","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","status":"active","customer_id":"cus_TyfQe9d5Fu14PO","plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC DECISION","context":{"plan_id":"agency_max","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_max","max_agents":10,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_max","max_agents":10,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","new_max_agents":10,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_max","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 12:38:50","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:50","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_max","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:50","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:50","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","session_id":"cs_live_b19aJUx8gOlIlAJ1oJwIEy0HdQs6vZ2znpiN1LoPDPVR8QaKkt7fPnBaOu"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_max","max_agents":10,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_max","max_agents":10,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","new_max_agents":10,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0i7aCmOXyFMbar4EexpAEE","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:50","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0i6DCmOXyFMbardrBZ2WaI","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0i7aCmOXyFMbardH3aybzX","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SYNC DECISION","context":{"plan_id":"agency_max","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_max","max_agents":10,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_max","max_agents":10,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","new_max_agents":10,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_max","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 12:38:51","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","created_at":"2026-02-14 12:37:25"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 13:38:51","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:51","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_max","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:51","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 13:38:51","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:03:55","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iVqCmOXyFMbarFAjdxpiB","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:03:55","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0gmdCmOXyFMbarw2SExza9","customer_id":"cus_Tye3vAvVVI0HEr"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:03:56","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_Tye3vAvVVI0HEr","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:05","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iW0CmOXyFMbarGHu4xT99","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:05","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0gxPCmOXyFMbaryhlWzKe9","customer_id":"cus_TyeEydRDilxhXN"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:05","message":"Pas de user_id dans customer metadata","context":{"customer_id":"cus_TyeEydRDilxhXN","metadata":{"supabase_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:10","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iW5CmOXyFMbarHzRhyDbm","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:10","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","customer_id":"cus_TyeJYMhbf3fIBk"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771068516},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","stripe_customer_id":"cus_TyeJYMhbf3fIBk","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:04:11","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:11","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:11","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","p_stripe_customer_id":"cus_TyeJYMhbf3fIBk","p_status":"canceled","p_current_period_start":"2026-02-14T11:28:36Z","p_current_period_end":"2026-03-14T11:28:36Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:11","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:11","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:16","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iWCCmOXyFMbarXSGhWDuL","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:16","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","customer_id":"cus_TyegxCGAiftIb9"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771069982},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","stripe_customer_id":"cus_TyegxCGAiftIb9","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:04:17","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:17","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:17","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","p_stripe_customer_id":"cus_TyegxCGAiftIb9","p_status":"canceled","p_current_period_start":"2026-02-14T11:53:02Z","p_current_period_end":"2026-03-14T11:53:02Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:17","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:17","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iWJCmOXyFMbarE3XhuXuf","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","customer_id":"cus_Tyeukhm7L62Y27"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771070700},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","stripe_customer_id":"cus_Tyeukhm7L62Y27","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:04:24","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:24","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:24","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","p_stripe_customer_id":"cus_Tyeukhm7L62Y27","p_status":"canceled","p_current_period_start":"2026-02-14T12:05:00Z","p_current_period_end":"2026-03-14T12:05:00Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:25","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:25","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iW5CmOXyFMbarHzRhyDbm","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","customer_id":"cus_TyeJYMhbf3fIBk"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771068516},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","stripe_customer_id":"cus_TyeJYMhbf3fIBk","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:04:28","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:04:28","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:28","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","p_stripe_customer_id":"cus_TyeJYMhbf3fIBk","p_status":"canceled","p_current_period_start":"2026-02-14T11:28:36Z","p_current_period_end":"2026-03-14T11:28:36Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:29","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:04:29","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:17:00","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","new_plan_id":"agency_starter","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:17:01","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:17:01","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0iiXCmOXyFMbar84YgAe0P","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:17:01","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:17:01","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:30:17","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:30:19","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:30:19","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:19","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:19","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:19","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:30:19","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0ivPCmOXyFMbarm4uzPJQC","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_max","new_plan_id":"agency_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_max"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:19","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:30:20","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:30:20","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:20","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:20","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:30:20","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_max","new_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":100,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":7,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:30:20","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:56","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iWCCmOXyFMbarXSGhWDuL","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:56","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","customer_id":"cus_TyegxCGAiftIb9"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771069982},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","stripe_customer_id":"cus_TyegxCGAiftIb9","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:33:57","current_period_start":"2026-02-14T11:53:02Z","current_period_end":"2026-03-14T11:53:02Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:33:57","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","p_stripe_customer_id":"cus_TyegxCGAiftIb9","p_status":"canceled","p_current_period_start":"2026-02-14T11:53:02Z","p_current_period_end":"2026-03-14T11:53:02Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:33:57","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:33:57","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hQ1CmOXyFMbars6L3IUn0","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:57","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:33:58","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:40","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6PCmOXyFMbarwayrQNPn","new_plan_id":"agency_max","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:42:41","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6PCmOXyFMbarwayrQNPn","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:42:41","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:41","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_max","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:41","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:41","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:42:41","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0j7NCmOXyFMbarg4YEESst","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:41","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:41","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","max_agents":10,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:42:42","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_pro","new_plan_id":"agency_max","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SYNC DECISION","context":{"plan_id":"agency_max","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_max","max_agents":10,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_max","max_agents":10,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_max","new_max_agents":10,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_max","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 13:42:42","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_max","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:42","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 14:42:42","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 14:42:42","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_pro","new_plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_max","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":150,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":1,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 14:42:42","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iW5CmOXyFMbarHzRhyDbm","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","customer_id":"cus_TyeJYMhbf3fIBk"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:24","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771068516},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","stripe_customer_id":"cus_TyeJYMhbf3fIBk","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 14:03:25","current_period_start":"2026-02-14T11:28:36Z","current_period_end":"2026-03-14T11:28:36Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:03:25","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","p_stripe_customer_id":"cus_TyeJYMhbf3fIBk","p_status":"canceled","p_current_period_start":"2026-02-14T11:28:36Z","p_current_period_end":"2026-03-14T11:28:36Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:03:25","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:03:25","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0h2MCmOXyFMbarsLpBDGAz","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:03:25","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:03","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0iWJCmOXyFMbarE3XhuXuf","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:03","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","customer_id":"cus_Tyeukhm7L62Y27"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771070700},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","stripe_customer_id":"cus_Tyeukhm7L62Y27","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 14:05:04","current_period_start":"2026-02-14T12:05:00Z","current_period_end":"2026-03-14T12:05:00Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:05:04","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","p_stripe_customer_id":"cus_Tyeukhm7L62Y27","p_status":"canceled","p_current_period_start":"2026-02-14T12:05:00Z","p_current_period_end":"2026-03-14T12:05:00Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:05:04","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:05:04","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0hc7CmOXyFMbarbdLwCamO","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:04","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:05:05","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:26","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","new_plan_id":"agency_starter","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 15:08:27","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 15:08:27","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:27","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:28","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:28","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 15:08:28","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","max_agents":2,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 15:08:28","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0jWJCmOXyFMbarh8dMhM1A","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 15:08:28","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_max","new_plan_id":"agency_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 14:08:28","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:28","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:28","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:29","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:08:29","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_max","new_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_starter","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":50,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:08:29","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:56","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0iiXCmOXyFMbar84YgAe0P","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:56","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 14:16:57","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:16:57","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:16:57","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 15:16:57","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 15:16:57","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:04","message":"Abonnement annul\u00e9 (fin de p\u00e9riode)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","cancel_at":"2026-03-14 13:37:25"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:24:05","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0ldYCmOXyFMbarbXtfcGtv","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:05","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 16:24:06","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:24:06","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:24:06","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:24:06","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:24:06","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:15","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6RCmOXyFMbarj628u90T","new_plan_id":"individual_starter","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:26:16","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6RCmOXyFMbarj628u90T","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:26:16","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:16","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:16","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:16","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_starter","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:26:16","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_starter","max_agents":1,"mode":"individual","http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:26:16","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0lfgCmOXyFMbarPpP5DT3c","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:16","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_starter","new_plan_id":"individual_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_starter","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 16:26:17","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:17","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:17","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 17:26:17","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 17:26:17","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_starter","new_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"individual_starter","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":30,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 17:26:17","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:19","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:31:21","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:31:21","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:21","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:21","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:21","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:31:21","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","max_agents":5,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:31:22","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0mgfCmOXyFMbarkEe3H3WO","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:31:22","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"individual_starter","new_plan_id":"agency_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 17:31:22","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:22","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:22","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:31:22","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"individual_starter","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"agency_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":100,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":2,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:31:22","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:10","message":"Abonnement annul\u00e9 (fin de p\u00e9riode)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","cancel_at":"2026-03-14 13:37:25"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:39:11","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0moECmOXyFMbarSEVYaKFe","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:11","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 17:39:12","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:39:12","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:39:12","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:39:12","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:39:12","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:41","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T0msbCmOXyFMbarqxGEI728","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:41","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","customer_id":"cus_ThnpboM1lMRH9r"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770709399},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-10T07:43:19Z","current_period_end":"2026-03-10T07:43:19Z","subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","stripe_customer_id":"cus_ThnpboM1lMRH9r","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-14 17:43:42","current_period_start":"2026-02-10T07:43:19Z","current_period_end":"2026-03-10T07:43:19Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:43:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","p_stripe_customer_id":"cus_ThnpboM1lMRH9r","p_status":"canceled","p_current_period_start":"2026-02-10T07:43:19Z","p_current_period_end":"2026-03-10T07:43:19Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:43:42","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:43:42","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzBbxCmOXyFMbars5siycHf","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:43","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:43:43","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:31","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_price_id":"price_1SkL6RCmOXyFMbarn0IKisle","new_plan_id":"individual_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:53:32","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","new_status":"active","new_price_id":"price_1SkL6RCmOXyFMbarn0IKisle","latest_invoice":"in_1T0i6DCmOXyFMbardrBZ2WaI"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:53:32","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:32","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:32","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:32","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:53:32","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","max_agents":1,"mode":"individual","http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:53:33","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0n28CmOXyFMbarUkXLAljI","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 18:53:33","message":"PLAN CHANGE DETECTED","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_pro","new_plan_id":"individual_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 17:53:33","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:33","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:33","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 18:53:33","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","old_plan_id":"agency_pro","new_plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","new_plan_id":"individual_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":80,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 18:53:33","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:54","message":"Abonnement annul\u00e9 (fin de p\u00e9riode)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","cancel_at_period_end":true,"cancel_at":"2026-03-14 13:37:25"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:06:54","message":"cancel-subscription: Sync Supabase user_subscriptions","context":{"stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","cancel_at_period_end":true,"http_code":200},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:06:54","message":"cancel-subscription: Email annulation envoy\u00e9","context":{"email":"trezor.mang@gmail.com","http_code":200,"curl_error":null},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:06:55","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0nF4CmOXyFMbaraS64xQcQ","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"active","plan_id":"individual_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-02-14 18:06:55","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:55","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 19:06:55","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"active","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 19:06:56","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 19:06:56","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:06:56","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","cancel_at_period_end":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:44:07","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0np3CmOXyFMbarQv4zPVZH","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:44:07","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0msaCmOXyFMbarLBJco2Vk","subscription_id":null,"amount_paid":0,"customer_id":"cus_ThnpboM1lMRH9r"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:50:15","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","additional_properties":1,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","account_type":"individual","source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:16","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:16","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1T0nv2CmOXyFMbar5dSZwBwN","amount":100,"quantity":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:17","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1T0nv2CmOXyFMbart0YxXmft"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:18","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1T0nv2CmOXyFMbart0YxXmft","status":"paid","paid":null},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:19","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1T0nv2CmOXyFMbart0YxXmft"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:50:19","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0nv4CmOXyFMbarAlMJpoAz","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:50:19","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0nv2CmOXyFMbart0YxXmft","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:50:19","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:24","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","additional_properties":1,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","account_type":"individual","source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:24","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:25","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1T0nz2CmOXyFMbarhHTAdxhB","amount":100,"quantity":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:25","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1T0nz3CmOXyFMbarWZ1uWG1u"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:26","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1T0nz3CmOXyFMbarWZ1uWG1u","status":"paid","paid":null},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:27","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1T0nz3CmOXyFMbarWZ1uWG1u"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 19:54:27","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0nz4CmOXyFMbar2y2Tfo1Z","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:54:27","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0nz3CmOXyFMbarWZ1uWG1u","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 19:54:27","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:34:41","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:34:42","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"0 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:34:42","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0oc1CmOXyFMbarWx3HP4wH","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 19:34:42","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:34:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:34:42","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:34:42","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:34:42","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:37:45","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","additional_properties":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","account_type":"agency","source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:46","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:46","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1T0of0CmOXyFMbarinyaObVC","amount":5900,"quantity":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:47","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1T0of0CmOXyFMbarodQcXTfy"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:48","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1T0of0CmOXyFMbarodQcXTfy","status":"paid","paid":null},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:48","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1T0of0CmOXyFMbarodQcXTfy"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:48","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":50},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:37:49","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0of2CmOXyFMbarP5mf1DWb","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:37:49","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0of0CmOXyFMbarodQcXTfy","subscription_id":null,"amount_paid":0,"customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:58","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:38:58","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 2","patch_http":204},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:38:59","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0ogACmOXyFMbarvMvDxCQh","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 19:38:59","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:38:59","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:38:59","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:38:59","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:38:59","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:39","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:39:41","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"2 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 20:39:42","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T0ogrCmOXyFMbarpz5GtjRq","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 19:39:42","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:39:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:39:43","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 20:39:43","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:43","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:43","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:43","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 20:39:43","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 21:07:14","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","new_price_id":"price_1SkL6PCmOXyFMbar2oT6w0Ys","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 21:07:15","message":"Erreur Stripe API lors upgrade (web)","context":{"error":"All prices on a subscription must have the same `recurring.interval` and `recurring.interval_count` unless flexible billing mode is enabled and you're on the 2025-06-30.basil API version or later. To proceed, update the subscription to flexible billing mode, then retry this update. For information about flexible billing mode, go to https:\/\/docs.stripe.com\/billing\/subscriptions\/billing-mode. ","type":"Stripe\\Exception\\InvalidRequestException","code":null},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:14:55","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_TynmWRLo4NQbLg","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:14:56","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_TynmWRLo4NQbLg","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:15:42","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0qBlCmOXyFMbarVJqjIPen","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","customer_id":"cus_TynmWRLo4NQbLg","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","payment_status":"paid"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","amount_total":0,"currency":"eur"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","rpc_result":{"success":true,"data":{"debug":{"agency_id":"e950c20c-1259-4130-be17-6e98df7c7d60","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":0},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":0,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:15:42","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1nvTle712LsyXsrpsgqP4DQ5WnRIe1oBLX6ivMNL5EfvNnwG7eeOhiYGa","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","properties_added":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:06","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_TynoGw5wkDR9x8","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:17:06","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_TynoGw5wkDR9x8","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:17:35","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0qDaCmOXyFMbarMZClIzei","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","customer_id":"cus_TynoGw5wkDR9x8","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","payment_status":"paid"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","amount_total":0,"currency":"eur"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","rpc_result":{"success":true,"data":{"debug":{"agency_id":"e950c20c-1259-4130-be17-6e98df7c7d60","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:17:35","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b11u9AcSzlNNAW2oGHtCQVX0LiAU9qnScpyohxsreVxSDWE9dQ0DT0F0xo","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","properties_added":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:18:06","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_TynpRlMwh2dILn","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:18:06","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b15nsJAOHrnbl2gqeh74lTGVo21KKRPumJgTvHQSiy47movHfihw8DAIYH","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b15nsJAOHrnbl2gqeh74lTGVo21KKRPumJgTvHQSiy47movHfihw8DAIYH#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_TynpRlMwh2dILn","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:21:17","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b19PGvyhrYtAI9B92vX8N0HPNaIq8dbdf8oM4dgBds6B219Lja1lplg0IV","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","mode":"subscription","price_id":"price_1SkL6PCmOXyFMbar2oT6w0Ys"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:35:54","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_Tyo7924OylO61F","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:35:54","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1zqdHKoEBVb3KBnUUHsjRCJ0BfYQLmWNE3e6QPKqgEGMEhHOPVcZUjFCR","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1zqdHKoEBVb3KBnUUHsjRCJ0BfYQLmWNE3e6QPKqgEGMEhHOPVcZUjFCR#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_Tyo7924OylO61F","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:36:15","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1NXsKMj79N3pxIicSAkay9xrke37XA0kVdUIU4NqIum9V6UjdX7zqejKR","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","mode":"subscription","price_id":"price_1SkL6PCmOXyFMbar2oT6w0Ys"},"ip":"2a02:a03f:6b21:de01:e9e7:5c87:68a7:abce","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-14 22:37:49","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T0qX9CmOXyFMbarHVE3NGuA","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:49","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T0qWICmOXyFMbarQVrf362t","customer_id":"cus_Tyo72PLmTEySXZ","payment_method":"pm_1T0qWHCmOXyFMbar800UajYG","subscription_id":null,"all_metadata":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:49","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:49","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T0qWICmOXyFMbarQVrf362t","customer_id":"cus_Tyo72PLmTEySXZ","metadata":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T0qXBCmOXyFMbarSj4A1VCx","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1NXsKMj79N3pxIicSAkay9xrke37XA0kVdUIU4NqIum9V6UjdX7zqejKR","customer_id":"cus_Tyo72PLmTEySXZ","payment_status":"paid","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","mode":"subscription","metadata":{"plan_id":"agency_pro","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","source":"web","account_type":"agency"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","status":"active","customer_id":"cus_Tyo72PLmTEySXZ","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"\ud83e\uddf9 CLEANUP: Recherche des anciens abonnements Stripe \u00e0 annuler","context":{"customer_id":"cus_Tyo72PLmTEySXZ","new_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T0qXCCmOXyFMbard4zynUBb","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T0qWHCmOXyFMbar2EA82Kuc","subscription_id":null,"amount_paid":0,"customer_id":"cus_Tyo72PLmTEySXZ"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"\ud83d\udd04 CLEANUP: Abonnement actuel (garder)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:50","message":"\ud83c\udfc1 CLEANUP: Nettoyage termin\u00e9","context":{"customer_id":"cus_Tyo72PLmTEySXZ","new_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","canceled_count":0,"errors":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T0qXCCmOXyFMbargrxalGfm","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_pro","is_yearly":true,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 21:37:51","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_pro","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_pro","is_yearly":true,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-14 21:37:51","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","created_at":"2026-02-14 21:36:53"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_pro","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":false,"error":"duplicate key value violates unique constraint \"user_subscriptions_stripe_subscription_id_key\"","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-14 22:37:51","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","session_id":"cs_live_b1NXsKMj79N3pxIicSAkay9xrke37XA0kVdUIU4NqIum9V6UjdX7zqejKR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-14 22:37:51","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:10","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_price_id":"price_1SkL6QCmOXyFMbarkGFE07sh","new_plan_id":"agency_starter","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:10:11","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarkGFE07sh","latest_invoice":"in_1T0qWHCmOXyFMbar2EA82Kuc"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:10:11","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:11","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_starter","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:11","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:11","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:10:11","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","max_agents":2,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:10:12","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T11LDCmOXyFMbarTOB9vOXm","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:10:12","message":"PLAN CHANGE DETECTED","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_pro","new_plan_id":"agency_starter","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_starter","is_yearly":true,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-15 09:10:12","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:12","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_starter","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:12","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:10:12","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_pro","new_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_starter","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":50,"new_additional_used":0,"new_used_properties":0,"old_additional_used":1,"old_used_properties":1,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":1}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:12","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:13","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:10:13","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:09","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_price_id":"price_1SkL6PCmOXyFMbarO8Gy6pBa","new_plan_id":"agency_max","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:29:10","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_status":"active","new_price_id":"price_1SkL6PCmOXyFMbarO8Gy6pBa","latest_invoice":"in_1T0qWHCmOXyFMbar2EA82Kuc"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:29:10","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:10","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_max","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:10","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:10","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_max","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:29:10","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_max","max_agents":10,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:29:11","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T11daCmOXyFMbarPPsuuVoE","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_max"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:29:11","message":"PLAN CHANGE DETECTED","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_starter","new_plan_id":"agency_max","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SYNC DECISION","context":{"plan_id":"agency_max","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_max","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_max","max_agents":10,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_max","max_agents":10,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_max","new_max_agents":10,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_max","is_yearly":true,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-15 09:29:11","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:11","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_max","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:11","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:29:11","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_starter","new_plan_id":"agency_max"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_max"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_max","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":150,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:29:11","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:19","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_price_id":"price_1SkL6PCmOXyFMbar2oT6w0Ys","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:35:21","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","new_status":"active","new_price_id":"price_1SkL6PCmOXyFMbar2oT6w0Ys","latest_invoice":"in_1T0qWHCmOXyFMbar2EA82Kuc"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:35:21","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:21","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_pro","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:21","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:21","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:35:21","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","max_agents":5,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:35:21","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T11jZCmOXyFMbarID14dW7k","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:21","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"},"ip":"2a02:a03f:6b21:de01:6002:2d1f:a53b:afc","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-15 10:35:22","message":"PLAN CHANGE DETECTED","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_max","new_plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":"agency_max"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"active","plan_id":"agency_pro","is_yearly":true,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-15 09:35:22","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:22","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"active","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_pro","p_is_yearly":true,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:22","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:35:22","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","old_plan_id":"agency_max","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","new_plan_id":"agency_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":100,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":0,"new_additional_purchased":0,"old_additional_purchased":0}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:35:22","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T123XCmOXyFMbarmjDHJ58R","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","customer_id":"cus_Tyo72PLmTEySXZ"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771105013},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","stripe_customer_id":"cus_Tyo72PLmTEySXZ","status":"canceled","plan_id":"agency_pro","is_yearly":true,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-15 09:56:00","current_period_start":"2026-02-14T21:36:53Z","current_period_end":"2027-02-14T21:36:53Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:56:00","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","p_stripe_customer_id":"cus_Tyo72PLmTEySXZ","p_status":"canceled","p_current_period_start":"2026-02-14T21:36:53Z","p_current_period_end":"2027-02-14T21:36:53Z","p_plan_id":"agency_pro","p_is_yearly":true,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:56:00","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 10:56:00","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0qXACmOXyFMbarVH8HLtFb","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:00","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 10:56:01","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 11:56:52","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T130RCmOXyFMbarZSc25MaK","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 11:56:52","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T123WCmOXyFMbarG6JUBFlU","subscription_id":null,"amount_paid":0,"customer_id":"cus_Tyo72PLmTEySXZ"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:57","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1588CmOXyFMbarqCkxs4Z6","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:57","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","customer_id":"cus_TmNSWFuQ1ZP4tB","status":"active","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","old_plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768482671},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-15T13:11:11Z","current_period_end":"2026-03-15T13:11:11Z","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","data":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-15 13:12:58","current_period_start":"2026-02-15T13:11:11Z","current_period_end":"2026-03-15T13:11:11Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 14:12:58","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","p_stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","p_stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","p_status":"active","p_current_period_start":"2026-02-15T13:11:11Z","p_current_period_end":"2026-03-15T13:11:11Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 14:12:58","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-15 14:12:58","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:58","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:59","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 14:12:59","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 15:14:08","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T165LCmOXyFMbarDNVAP7or","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-15 15:14:08","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T1586CmOXyFMbarhAgrt8mP","subscription_id":null,"amount_paid":300,"customer_id":"cus_TmNSWFuQ1ZP4tB"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:37","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 09:02:38","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 2","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 09:02:38","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1MlNCmOXyFMbarTZfvXYIH","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 08:02:38","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:38","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:02:38","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:02:39","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:02:39","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:39","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:39","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:39","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:02:39","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:17","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 09:04:19","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"2 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 09:04:19","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1Mn0CmOXyFMbarIJK2s61j","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:19","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 08:04:20","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:04:20","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:04:20","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 09:04:20","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 09:04:20","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:29","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:05:31","message":"REMOVE_AGENTS (web): Item supprim\u00e9","context":{"item_id":"si_TymAXdKuG0t0Fm"},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:05:31","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 0","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:05:31","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1X6tCmOXyFMbarDZ7Qj2qF","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:31","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 19:05:32","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:05:32","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:05:32","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:05:32","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:05:32","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:07","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:13:07","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1XEFCmOXyFMbarhxek8PUg","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:07","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:07","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"0 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:13:08","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 19:13:08","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:13:08","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:13:08","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:13:08","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:13:08","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:23","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:22:24","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 2","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-16 20:22:24","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1XNDCmOXyFMbarH0DdKpDm","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:24","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 19:22:25","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:22:25","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:22:25","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 20:22:25","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 20:22:25","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:46","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:47","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","latest_invoice":"in_1SzCa5CmOXyFMbar3AkPiO66"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:47","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:47","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:48","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:48","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:48","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","max_agents":5,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:48","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1a19CmOXyFMbarO7rcrLxE","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:48","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"PLAN CHANGE DETECTED","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","old_plan_id":"agency_starter","new_plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 22:11:49","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:49","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:49","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:49","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","old_plan_id":"agency_starter","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","new_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"UPGRADE (web): Agents suppl\u00e9mentaires supprim\u00e9s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:49","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","new_plan_id":"agency_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":100,"new_additional_used":0,"new_used_properties":0,"old_additional_used":9,"old_used_properties":5,"remaining_from_old_plan":91,"new_additional_purchased":91,"old_additional_purchased":100}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-16 23:11:49","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:49","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1a1BCmOXyFMbarSeOX8xf1","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-16 22:11:50","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:50","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:50","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-16 23:11:50","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:50","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:51","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-16 23:11:51","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:54","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 09:38:54","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"2 -> 3","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 09:38:55","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1jo2CmOXyFMbarAaYnz7vI","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-17 08:38:55","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:38:55","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:38:55","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:38:55","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:38:55","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:01","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 09:39:01","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"3 -> 4","patch_http":204},"ip":"2a02:a03f:6b21:de01:60f7:e6c8:dd07:8d52","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 09:39:02","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T1jo9CmOXyFMbarJFZ8gxJY","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:02","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:02","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:02","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:02","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:02","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-17 08:39:03","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:39:03","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:39:03","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-17 09:39:03","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 09:39:03","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-17 10:10:47","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"2a02:a03f:6b21:de01:2d4f:4971:5c2:4303","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 10:29:22","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"2a02:a03f:6b21:de01:2d4f:4971:5c2:4303","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 11:25:06","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"2a02:a03f:6b21:de01:2d4f:4971:5c2:4303","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/144.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-17 11:35:01","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"2a02:a03f:6b21:de01:4c:18a5:67fe:ab6","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-17 16:01:00","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"62.235.242.124","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_5_0 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-18 11:25:11","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U08CvJYlVGP9xy","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:ac94:f140:448a:26b5","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-18 11:25:11","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b13n5RtIKgoqPLkNblHCRALycdMI7coEisg8X16FYIStptZkykY683IBsQ","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b13n5RtIKgoqPLkNblHCRALycdMI7coEisg8X16FYIStptZkykY683IBsQ#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U08CvJYlVGP9xy","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:ac94:f140:448a:26b5","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-18 13:05:03","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:ac94:f140:448a:26b5","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-19 09:14:22","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1rxltoUCG1AS9XzGW2h4co9d2Nz6Gl3YKFYqgINPmCz4Iz0ab0KBLFWwf","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","mode":"subscription","price_id":"price_1SkL6RCmOXyFMbarj628u90T"},"ip":"2a02:a03f:6b21:de01:ac94:f140:448a:26b5","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-19 16:28:11","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"62.235.242.124","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-19 16:28:43","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:ac94:f140:448a:26b5","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-19 16:33:56","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:54fb:5dc7:2237:18a3","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/144.0.7559.95 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-19 19:32:51","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"62.235.242.124","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-19 21:36:41","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T2dxkCmOXyFMbarGi2QOW9e","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:41","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","customer_id":"cus_Tno8lf9aBgS4Ah","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","plan_id":"agency_starter","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768854925},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-19T20:35:25Z","current_period_end":"2026-03-19T20:35:25Z","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","data":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","stripe_subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","stripe_customer_id":"cus_Tno8lf9aBgS4Ah","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-19 20:36:42","current_period_start":"2026-02-19T20:35:25Z","current_period_end":"2026-03-19T20:35:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:43","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-19 21:36:43","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","p_stripe_subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","p_stripe_customer_id":"cus_Tno8lf9aBgS4Ah","p_status":"active","p_current_period_start":"2026-02-19T20:35:25Z","p_current_period_end":"2026-03-19T20:35:25Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-19 21:36:43","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-19 21:36:43","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:43","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:43","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:43","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 21:36:43","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 22:37:22","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T2euTCmOXyFMbar15eZHKMQ","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-19 22:37:22","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T2dxjCmOXyFMbarVubci1IZ","subscription_id":null,"amount_paid":0,"customer_id":"cus_Tno8lf9aBgS4Ah"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-20 18:28:24","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"62.235.242.124","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-20 20:03:37","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:5052:2a77:e3b5:443b","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-20 20:07:41","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:5052:2a77:e3b5:443b","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-02-21 19:40:31","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U1NsI25MMgQHog","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:1808:1b1:ffd3:b43d:e77f:e355:bfe8","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-21 19:40:31","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U1NsI25MMgQHog","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:1808:1b1:ffd3:b43d:e77f:e355:bfe8","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-21 19:42:01","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T3L7sCmOXyFMbarDscrrInS","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","customer_id":"cus_U1NsI25MMgQHog","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","payment_status":"paid"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","amount_total":0,"currency":"eur"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","rpc_result":{"success":true,"data":{"debug":{"agency_id":"031b8b58-584b-407c-80d0-eedb56e349b0","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":0},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":0,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 19:42:01","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1T8Pho0cmxAtE6hJSTOZ8WDsMKdJUNkimzbdtU3PoOhtY7wUGgG7vevza","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","properties_added":1},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:11","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U1P9lBUWOBi0hl","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-21 21:00:12","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U1P9lBUWOBi0hl","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-21 21:00:24","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T3MLjCmOXyFMbarWN4Jf0b8","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:24","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","customer_id":"cus_U1P9lBUWOBi0hl","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","type":"single_property_payment","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:24","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","session_type":"single_property_payment","metadata":{"app":"web","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","type":"single_property_payment","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:24","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","payment_status":"paid"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:24","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","amount_total":0,"currency":"eur"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:25","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","rpc_result":{"success":true,"data":{"debug":{"agency_id":"031b8b58-584b-407c-80d0-eedb56e349b0","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:00:25","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1fV4zzUzBiCSsvKgFlCGnV0VW5UJkr8zZNmxeJZUMSUs4pliK0eSx3D8q","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","properties_added":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:43:44","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b11r1Xdw7Ubnt8kdSru6rwQYTYceyBDx1IWIeRxMHDgScjk4BtGVZjiIsb","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","mode":"subscription","price_id":"price_1SkL6RCmOXyFMbarj628u90T"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-21 21:45:09","message":"Webhook re\u00e7u","context":{"event_type":"setup_intent.succeeded","event_id":"evt_1T3N32CmOXyFMbar11msgKHu","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:09","message":"Setup Intent r\u00e9ussi","context":{"setup_intent_id":"seti_1T3N2UCmOXyFMbaroTGQzUda","customer_id":"cus_U1PrymNV72HpeK","payment_method":"pm_1T3N2SCmOXyFMbarcBTMSDdU","subscription_id":null,"all_metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:09","message":"Pas de subscription_id dans m\u00e9tadonn\u00e9es, recherche via customer","context":[],"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:09","message":"Aucun subscription_id trouv\u00e9 (ni m\u00e9tadonn\u00e9es ni customer)","context":{"setup_intent_id":"seti_1T3N2UCmOXyFMbaroTGQzUda","customer_id":"cus_U1PrymNV72HpeK","metadata":[]},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T3N34CmOXyFMbarRVcAG3je","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b11r1Xdw7Ubnt8kdSru6rwQYTYceyBDx1IWIeRxMHDgScjk4BtGVZjiIsb","customer_id":"cus_U1PrymNV72HpeK","payment_status":"paid","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","mode":"subscription","metadata":{"plan_id":"individual_starter","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","source":"web","account_type":"individual"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","status":"active","customer_id":"cus_U1PrymNV72HpeK","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"\ud83e\uddf9 CLEANUP: Recherche des anciens abonnements Stripe \u00e0 annuler","context":{"customer_id":"cus_U1PrymNV72HpeK","new_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T3N35CmOXyFMbarNDwaZ0jt","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"\ud83d\udd04 CLEANUP: Abonnement actuel (garder)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"\ud83c\udfc1 CLEANUP: Nettoyage termin\u00e9","context":{"customer_id":"cus_U1PrymNV72HpeK","new_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","canceled_count":0,"errors":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T3N35CmOXyFMbarvDRkVe6p","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:11","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T3N2TCmOXyFMbarboD0zxLJ","subscription_id":null,"amount_paid":0,"customer_id":"cus_U1PrymNV72HpeK"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-21 20:45:12","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","created_at":"2026-02-21 20:44:33"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-21 20:45:12","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","session_id":"cs_live_b11r1Xdw7Ubnt8kdSru6rwQYTYceyBDx1IWIeRxMHDgScjk4BtGVZjiIsb"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-21 21:45:12","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-21 21:45:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:50:38","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","additional_properties":1,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","account_type":"individual","source":"web"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:39","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:39","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1T3XR5CmOXyFMbargJCnIsBJ","amount":100,"quantity":1},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:39","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1T3XR5CmOXyFMbar8Bb5YAzg"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:40","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1T3XR5CmOXyFMbar8Bb5YAzg","status":"paid","paid":null},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:41","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1T3XR5CmOXyFMbar8Bb5YAzg"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:41","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":1},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:50:41","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T3XR7CmOXyFMbarF7MJkz48","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:50:41","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T3XR5CmOXyFMbar8Bb5YAzg","subscription_id":null,"amount_paid":0,"customer_id":"cus_U1PrymNV72HpeK"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:26","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","new_price_id":"price_1SkL6RCmOXyFMbarn0IKisle","new_plan_id":"individual_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:51:27","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","new_status":"active","new_price_id":"price_1SkL6RCmOXyFMbarn0IKisle","latest_invoice":"in_1T3N2TCmOXyFMbarboD0zxLJ"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:51:27","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:27","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:27","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T3XRrCmOXyFMbarwy16uzdf","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:27","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"individual_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:27","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:27","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:51:28","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_pro","max_agents":1,"mode":"individual","http_code":200},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:51:28","message":"PLAN CHANGE DETECTED","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","old_plan_id":"individual_starter","new_plan_id":"individual_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"individual_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-22 07:51:28","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:28","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:28","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:51:28","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","old_plan_id":"individual_starter","new_plan_id":"individual_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","new_plan_id":"individual_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:51:28","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","new_plan_id":"individual_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":80,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":1,"remaining_from_old_plan":1,"new_additional_purchased":1,"old_additional_purchased":1}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:51:28","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:09","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","new_plan_id":"agency_pro","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:52:10","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarOVCUTfQf","latest_invoice":"in_1T3N2TCmOXyFMbarboD0zxLJ"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:52:10","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:10","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:11","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:11","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:52:11","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","max_agents":5,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:52:11","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T3XSYCmOXyFMbar5WDi46FU","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:11","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:11","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:52:12","message":"PLAN CHANGE DETECTED","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","old_plan_id":"individual_pro","new_plan_id":"agency_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-22 07:52:12","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:12","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:12","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 08:52:12","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","old_plan_id":"individual_pro","new_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","new_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","new_plan_id":"agency_pro","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":100,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":0,"remaining_from_old_plan":1,"new_additional_purchased":1,"old_additional_purchased":1}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:52:12","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 08:53:50","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 08:54:51","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK"},"ip":"2a02:a03f:6b21:de01:1c86:b8a7:1de7:5d87","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:09","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","additional_properties":1,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","account_type":"agency","source":"web"},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:10","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:10","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1T3ZzKCmOXyFMbarev4UDlgH","amount":5900,"quantity":1},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:10","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1T3ZzKCmOXyFMbarz6GeEv9Q"},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:11","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1T3ZzKCmOXyFMbarz6GeEv9Q","status":"paid","paid":null},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:12","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1T3ZzKCmOXyFMbarz6GeEv9Q"},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:12","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":50},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:12","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T3ZzLCmOXyFMbarzHOP7Oed","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:12","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T3ZzKCmOXyFMbarz6GeEv9Q","subscription_id":null,"amount_paid":0,"customer_id":"cus_U1PrymNV72HpeK"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:23","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","quantity":1},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:23","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","additional_agents":"0 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:112c:eaa9:88c8:a8db","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.55 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 11:34:23","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T3ZzXCmOXyFMbar5haf9xsk","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:23","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-02-22 10:34:24","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 11:34:24","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"active","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 11:34:24","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-22 11:34:24","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 11:34:24","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:08","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U1iMetqsuIFCpj","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:6b21:de01:ac80:def8:54db:df1e","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_3_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/18.3 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 16:51:09","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U1iMetqsuIFCpj","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:6b21:de01:ac80:def8:54db:df1e","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_3_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/18.3 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-22 16:51:29","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T3ewNCmOXyFMbarrEYmeypv","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","customer_id":"cus_U1iMetqsuIFCpj","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","payment_status":"paid"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","amount_total":0,"currency":"eur"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","rpc_result":{"success":true,"data":{"debug":{"agency_id":"074a6d9b-c126-4620-bb50-e8dc699b53bc","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-22 16:51:29","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1nG2wlWsiiOcBTshR5JheQzdV1XCuzCpaIH1TYU3yecqRHiW55v1b8JdQ","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","properties_added":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:55:06","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U22kpM9Xa00Nie","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:c44d:0:55e6:dd5e:a7f9:9d12","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_3_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/18.3 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-23 13:55:07","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U22kpM9Xa00Nie","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:c44d:0:55e6:dd5e:a7f9:9d12","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_3_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/18.3 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-02-23 13:57:52","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T3yhvCmOXyFMbarfHhiiyE4","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","customer_id":"cus_U22kpM9Xa00Nie","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","payment_status":"paid"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","amount_total":0,"currency":"eur"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","rpc_result":{"success":true,"data":{"debug":{"agency_id":"074a6d9b-c126-4620-bb50-e8dc699b53bc","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-23 13:57:52","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1OXrBL7oGMmZcXfYa3RSdYBkhsFaipMufPSBuDR25UQzh3BwfUG1vtIR8","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","properties_added":1},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:29","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4PnYCmOXyFMbar7eAktNfE","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:29","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","customer_id":"cus_U1PrymNV72HpeK"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771706673},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","data":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","stripe_customer_id":"cus_U1PrymNV72HpeK","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 17:53:30","current_period_start":"2026-02-21T20:44:33Z","current_period_end":"2026-03-21T20:44:33Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 18:53:30","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","p_stripe_subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","p_stripe_customer_id":"cus_U1PrymNV72HpeK","p_status":"canceled","p_current_period_start":"2026-02-21T20:44:33Z","p_current_period_end":"2026-03-21T20:44:33Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 18:53:30","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 18:53:30","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T3N32CmOXyFMbar69uStlHA","user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":204},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 18:53:30","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"b1d04112-3d2a-4111-8569-6034fcd49e49","http_code":204},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:06","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4QaXCmOXyFMbarL4Gki6Ia","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:06","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","customer_id":"cus_Tno8lf9aBgS4Ah"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","plan_id":"agency_starter","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768854925},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-19T20:35:25Z","current_period_end":"2026-03-19T20:35:25Z","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","data":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","stripe_subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","stripe_customer_id":"cus_Tno8lf9aBgS4Ah","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 18:44:07","current_period_start":"2026-02-19T20:35:25Z","current_period_end":"2026-03-19T20:35:25Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:07","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:07","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","p_stripe_subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","p_stripe_customer_id":"cus_Tno8lf9aBgS4Ah","p_status":"canceled","p_current_period_start":"2026-02-19T20:35:25Z","p_current_period_end":"2026-03-19T20:35:25Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:07","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:07","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SrPBACmOXyFMbarCp1H1d1r","user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:08","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:08","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"54f3748d-fc1d-4444-9d73-b36a838dd12f","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4QagCmOXyFMbarbOXiZkZX","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","customer_id":"cus_TjfKgfPYyoEs6S"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","plan_id":"individual_starter","subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1767615049},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-05T12:10:49Z","current_period_end":"2026-03-05T12:10:49Z","subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","data":{"user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","stripe_subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","stripe_customer_id":"cus_TjfKgfPYyoEs6S","status":"canceled","plan_id":"individual_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 18:44:15","current_period_start":"2026-02-05T12:10:49Z","current_period_end":"2026-03-05T12:10:49Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:15","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:15","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","p_stripe_subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","p_stripe_customer_id":"cus_TjfKgfPYyoEs6S","p_status":"canceled","p_current_period_start":"2026-02-05T12:10:49Z","p_current_period_end":"2026-03-05T12:10:49Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:15","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:15","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SmCcXCmOXyFMbarYgQLoUKJ","user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:16","message":"CANCEL RESET INDIVIDUAL: Compteurs individuels remis \u00e0 z\u00e9ro","context":{"user_id":"06dc7422-4d3f-4802-b2cf-567643e55ac5","http_code":204},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4QatCmOXyFMbarX664uaey","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","customer_id":"cus_TkV2BJv5xUbQ2m"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","plan_id":"individual_pro","subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770402810},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-06T18:33:30Z","current_period_end":"2027-02-06T18:33:30Z","subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","data":{"user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","stripe_subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","stripe_customer_id":"cus_TkV2BJv5xUbQ2m","status":"canceled","plan_id":"individual_pro","is_yearly":true,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 18:44:28","current_period_start":"2026-02-06T18:33:30Z","current_period_end":"2027-02-06T18:33:30Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:28","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:28","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","p_stripe_subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","p_stripe_customer_id":"cus_TkV2BJv5xUbQ2m","p_status":"canceled","p_current_period_start":"2026-02-06T18:33:30Z","p_current_period_end":"2027-02-06T18:33:30Z","p_plan_id":"individual_pro","p_is_yearly":true,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:29","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:44:29","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SxtrgCmOXyFMbarrmBwkhoO","user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:44:29","message":"CANCEL RESET INDIVIDUAL: Compteurs individuels remis \u00e0 z\u00e9ro","context":{"user_id":"45daf054-5dee-474a-aa4d-8a1a22092b3c","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:41","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4Qc5CmOXyFMbar07FTSVfz","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:41","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","customer_id":"cus_TjO3nhFenxjh97"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770710586},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-10T08:03:06Z","current_period_end":"2026-03-10T08:03:06Z","subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","data":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","stripe_subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","stripe_customer_id":"cus_TjO3nhFenxjh97","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 18:45:42","current_period_start":"2026-02-10T08:03:06Z","current_period_end":"2026-03-10T08:03:06Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:45:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","p_stripe_subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","p_stripe_customer_id":"cus_TjO3nhFenxjh97","p_status":"canceled","p_current_period_start":"2026-02-10T08:03:06Z","p_current_period_end":"2026-03-10T08:03:06Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:45:42","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:45:42","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzBvSCmOXyFMbarUDDe7JdO","user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":204},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:45:42","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"9e04b736-996b-47ab-83ea-0a076fb7eb23","http_code":204},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:09","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4QcXCmOXyFMbarONBsHQzK","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:09","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","customer_id":"cus_TkQmibZIB6kk84"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","plan_id":"agency_pro","subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770711133},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-10T08:12:13Z","current_period_end":"2026-03-10T08:12:13Z","subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","data":{"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","stripe_subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","stripe_customer_id":"cus_TkQmibZIB6kk84","status":"canceled","plan_id":"agency_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 18:46:10","current_period_start":"2026-02-10T08:12:13Z","current_period_end":"2026-03-10T08:12:13Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:46:10","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","p_stripe_subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","p_stripe_customer_id":"cus_TkQmibZIB6kk84","p_status":"canceled","p_current_period_start":"2026-02-10T08:12:13Z","p_current_period_end":"2026-03-10T08:12:13Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:46:10","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 19:46:10","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzC4GCmOXyFMbarCcskJTd7","user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 19:46:10","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"a81fc8fa-4fd5-43f8-aa34-1d4579aa4fbe","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1T4RVmCmOXyFMbarZP1KbM0p","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","customer_id":"cus_TlyIOsl3jqGS9e"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","plan_id":"agency_starter","subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768144503},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"year","is_yearly_from_price":true,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-01-11T18:35:29Z","current_period_end":"2027-01-11T18:35:29Z","subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","is_yearly":true,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:15","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","data":{"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","stripe_subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","stripe_customer_id":"cus_TlyIOsl3jqGS9e","status":"canceled","plan_id":"agency_starter","is_yearly":true,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-02-24 19:43:15","current_period_start":"2026-01-11T18:35:29Z","current_period_end":"2027-01-11T18:35:29Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:16","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 20:43:16","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","p_stripe_subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","p_stripe_customer_id":"cus_TlyIOsl3jqGS9e","p_status":"canceled","p_current_period_start":"2026-01-11T18:35:29Z","p_current_period_end":"2027-01-11T18:35:29Z","p_plan_id":"agency_starter","p_is_yearly":true,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 20:43:16","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-02-24 20:43:16","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SoQM7CmOXyFMbarbZIWZs5H","user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:16","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-02-24 20:43:16","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"dea7c902-fe6e-427b-b7fb-16adaa05916b","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-02 12:27:59","message":"create-billing-portal-session: session cr\u00e9\u00e9e","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"2a02:a03f:6b21:de01:1c2f:b41f:e282:7b13","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:25:28","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:29","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"4 -> 3","patch_http":204},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:30","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pCnCmOXyFMbarNnbyJoMT","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 09:25:30","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:30","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:30","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:30","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:31","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:31","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:31","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:31","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:31","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:40","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:41","message":"REMOVE_AGENTS (web): Item supprim\u00e9","context":{"item_id":"si_TzjGmCZuXftj7I"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:42","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"3 -> 2","patch_http":204},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:42","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pCzCmOXyFMbarX2PiBzUV","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:42","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SYNC DECISION","context":{"plan_id":"agency_pro","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_pro","max_agents":5,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_pro","new_max_agents":5,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 09:25:43","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:43","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:43","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:25:43","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:43","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:25:46","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:47","message":"REMOVE_AGENTS (web): Erreur","context":{"error":"Aucun agent suppl\u00e9mentaire trouv\u00e9 \u00e0 supprimer"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:50","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:25:50","message":"REMOVE_AGENTS (web): Erreur","context":{"error":"Aucun agent suppl\u00e9mentaire trouv\u00e9 \u00e0 supprimer"},"ip":"2a02:a03f:6b21:de01:1588:ccd4:ea96:bb49","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 26_2_1 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-03 10:53:00","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:53:01","message":"REMOVE_AGENTS (web): Erreur","context":{"error":"Aucun agent suppl\u00e9mentaire trouv\u00e9 \u00e0 supprimer"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:07","message":"D\u00e9but upgrade abonnement (web)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","new_plan_id":"agency_starter","proration_behavior":"create_prorations","has_promo_code":false,"source":"web"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:08","message":"Abonnement upgrad\u00e9 avec succ\u00e8s (web)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","new_status":"active","new_price_id":"price_1SkL6QCmOXyFMbarmftER0RQ","latest_invoice":"in_1SzCa5CmOXyFMbar3AkPiO66"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:08","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:08","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":null,"p_current_period_end":null,"p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:08","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":false,"error":"null value in column \"current_period_start\" of relation \"user_subscriptions\" violates not-null constraint","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:08","message":"Supabase sync apr\u00e8s upgrade (web)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","http_code":200,"response":" {\"success\":true,\"message\":\"Fonction ex\\u00e9cut\\u00e9e\"}"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:08","message":"UPGRADE (web): Sync max_agents dans agencies","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","max_agents":2,"mode":"group","http_code":200},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:09","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6piOCmOXyFMbarwNPoIJWB","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"UPGRADE (web): additional_agents mis \u00e0 0 dans Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 10:58:09","message":"PLAN CHANGE DETECTED","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","old_plan_id":"agency_pro","new_plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_pro"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 09:58:09","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:09","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:09","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:10","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 10:58:10","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"PLAN CHANGE: Recalcul additional_properties","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","old_plan_id":"agency_pro","new_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"RECALCUL PLAN CHANGE: D\u00e9but","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","new_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"RECALCUL PLAN CHANGE: Succ\u00e8s","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","new_plan_id":"agency_starter","result":{"message":"Recalcul et reset effectu\u00e9s avec succ\u00e8s lors du changement de plan","success":true,"new_base_limit":50,"new_additional_used":0,"new_used_properties":0,"old_additional_used":0,"old_used_properties":4,"remaining_from_old_plan":91,"new_additional_purchased":91,"old_additional_purchased":91}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 10:58:10","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:03","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:02:03","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"0 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:02:04","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pmBCmOXyFMbarH09AuluM","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 10:02:04","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:04","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:04","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:05","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:05","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:05","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:05","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:05","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:05","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:47","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:02:48","message":"REMOVE_AGENTS (web): Item supprim\u00e9","context":{"item_id":"si_U4zlb1nOde20k8"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:02:48","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 0","patch_http":204},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:02:49","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pmuCmOXyFMbarbJrep5BH","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:49","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:49","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:49","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:49","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:49","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 10:02:50","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:50","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:50","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:02:50","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:02:50","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:08","message":"Agents suppl\u00e9mentaires ajout\u00e9s (Stripe)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","quantity":1},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:03:08","message":"Agents suppl\u00e9mentaires (Supabase)","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"0 -> 1","patch_http":204},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:03:08","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pnECmOXyFMbarDwYaklNv","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:08","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 10:03:09","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:03:09","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:03:09","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:03:09","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:03:09","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:52","message":"REMOVE_AGENTS (web): D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","agents_to_remove":1,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:05:53","message":"REMOVE_AGENTS (web): Item supprim\u00e9","context":{"item_id":"si_U4zmkP6Fbfx6I3"},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:05:53","message":"REMOVE_AGENTS (web): Supabase","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","additional_agents":"1 -> 0","patch_http":204},"ip":"2a02:a03f:6b21:de01:e984:1cee:15fc:65ea","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-03 11:05:53","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T6pptCmOXyFMbarN0dOFlHh","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:53","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-03 10:05:54","current_period_start":"2026-02-10T08:46:01Z","current_period_end":"2026-03-10T08:46:01Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:05:54","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-02-10T08:46:01Z","p_current_period_end":"2026-03-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:05:54","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-03 11:05:54","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-03 11:05:54","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-04 14:06:23","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U5PyuRmqNk6f2I","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a020:5c9:6129:50b2:7ecc:53fb:177f","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_5_0 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-04 14:06:24","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1qdrra4W5XXxityI93N6arp0dpbQZWAthQ500ZRlgFu62EqwbREjNvh4X","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1qdrra4W5XXxityI93N6arp0dpbQZWAthQ500ZRlgFu62EqwbREjNvh4X#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U5PyuRmqNk6f2I","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a020:5c9:6129:50b2:7ecc:53fb:177f","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_5_0 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/145.0.7632.108 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-06 09:44:03","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_U66BXfjxeyyG33","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:c44d:0:59b4:436f:915e:95a0","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-06 09:44:03","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_U66BXfjxeyyG33","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:c44d:0:59b4:436f:915e:95a0","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-06 09:44:42","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T7tzxCmOXyFMbarjkf036tW","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","customer_id":"cus_U66BXfjxeyyG33","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","payment_status":"paid"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","amount_total":0,"currency":"eur"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","rpc_result":{"success":true,"data":{"debug":{"agency_id":"074a6d9b-c126-4620-bb50-e8dc699b53bc","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-06 09:44:42","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b10mtDp7mVgtdfdoBDQv7AFdzZq5cG1icxEYQxPJq7PnTPazkAJMu8OEuw","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","properties_added":1},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:06","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T8GzpCmOXyFMbarujbbCK3o","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:06","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","customer_id":"cus_TkNdJhKJfAmVeT","status":"active","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","old_plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1767777482},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-03-07T09:18:02Z","current_period_end":"2026-04-07T09:18:02Z","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","data":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","stripe_customer_id":"cus_TkNdJhKJfAmVeT","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-07 09:18:07","current_period_start":"2026-03-07T09:18:02Z","current_period_end":"2026-04-07T09:18:02Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-07 10:18:07","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","p_stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","p_stripe_customer_id":"cus_TkNdJhKJfAmVeT","p_status":"active","p_current_period_start":"2026-03-07T09:18:02Z","p_current_period_end":"2026-04-07T09:18:02Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-07 10:18:07","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-07 10:18:07","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:18:07","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:19:35","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T8H1GCmOXyFMbarElFlT5iN","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-07 10:19:35","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T8GzoCmOXyFMbaroadpbVY7","subscription_id":null,"amount_paid":4500,"customer_id":"cus_TkNdJhKJfAmVeT"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:35","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1T9LvyCmOXyFMbar0NaSN7JU","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:35","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":"agency_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-03-10T08:46:01Z","current_period_end":"2026-04-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"active","plan_id":"agency_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-10 08:46:36","current_period_start":"2026-03-10T08:46:01Z","current_period_end":"2026-04-10T08:46:01Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-10 09:46:36","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"active","p_current_period_start":"2026-03-10T08:46:01Z","p_current_period_end":"2026-04-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-10 09:46:36","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-10 09:46:36","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:46:36","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:48:41","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T9Ly1CmOXyFMbarHOFqKA7q","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-10 09:48:41","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T9LvwCmOXyFMbarBKmEc3cM","subscription_id":null,"amount_paid":0,"customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:44:14","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1DTVLHbjP8UwuBz2jk61c9CbATPrQEIDNMbaHB4oMBQ1ZBrgTM1I9UDve","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","mode":"subscription","price_id":"price_1SkL6RCmOXyFMbarj628u90T"},"ip":"2a02:a03f:6792:7a00:1896:9398:cfe9:c3f6","user_agent":"Mozilla\/5.0 (iPad; CPU OS 18_5_0 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) CriOS\/146.0.7680.24 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-03-11 08:49:31","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1T9hWICmOXyFMbarraWg5Mma","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:31","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1DTVLHbjP8UwuBz2jk61c9CbATPrQEIDNMbaHB4oMBQ1ZBrgTM1I9UDve","customer_id":"cus_U7xLHAupOLWiSo","payment_status":"paid","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","mode":"subscription","metadata":{"plan_id":"individual_starter","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","source":"web","account_type":"individual"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","status":"active","customer_id":"cus_U7xLHAupOLWiSo","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83e\uddf9 CLEANUP: Recherche des anciens abonnements Stripe \u00e0 annuler","context":{"customer_id":"cus_U7xLHAupOLWiSo","new_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1T9hWJCmOXyFMbarlDGrNuFU","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1T9hVXCmOXyFMbarIHjId0tU","subscription_id":null,"amount_paid":2250,"customer_id":"cus_U7xLHAupOLWiSo"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83d\udd04 CLEANUP: Abonnement actuel (garder)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83c\udfc1 CLEANUP: Nettoyage termin\u00e9","context":{"customer_id":"cus_U7xLHAupOLWiSo","new_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","canceled_count":0,"errors":[]},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1T9hWJCmOXyFMbarE9xx7ltj","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1773215323},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-03-11T07:48:43Z","current_period_end":"2026-04-11T07:48:43Z","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","data":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","stripe_customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-11 07:49:32","current_period_start":"2026-03-11T07:48:43Z","current_period_end":"2026-04-11T07:48:43Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:32","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"58333cdc-0023-436d-a9df-660f4a394caa","p_stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","p_stripe_customer_id":"cus_U7xLHAupOLWiSo","p_status":"active","p_current_period_start":"2026-03-11T07:48:43Z","p_current_period_end":"2026-04-11T07:48:43Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1773215323},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-03-11T07:48:43Z","current_period_end":"2026-04-11T07:48:43Z","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:32","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","data":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","stripe_customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-11 07:49:32","current_period_start":"2026-03-11T07:48:43Z","current_period_end":"2026-04-11T07:48:43Z","created_at":"2026-03-11 07:48:43"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:33","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:33","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"58333cdc-0023-436d-a9df-660f4a394caa","p_stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","p_stripe_customer_id":"cus_U7xLHAupOLWiSo","p_status":"active","p_current_period_start":"2026-03-11T07:48:43Z","p_current_period_end":"2026-04-11T07:48:43Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:33","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","session_id":"cs_live_b1DTVLHbjP8UwuBz2jk61c9CbATPrQEIDNMbaHB4oMBQ1ZBrgTM1I9UDve"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-11 08:49:33","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-11 08:49:33","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1TArRqCmOXyFMbarYNUJthCm","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1771072645},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","data":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","stripe_customer_id":"cus_TyfQe9d5Fu14PO","status":"canceled","plan_id":"individual_pro","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-03-14 12:37:43","current_period_start":"2026-02-14T12:37:25Z","current_period_end":"2026-03-14T12:37:25Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:43","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-14 13:37:43","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","p_stripe_subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","p_stripe_customer_id":"cus_TyfQe9d5Fu14PO","p_status":"canceled","p_current_period_start":"2026-02-14T12:37:25Z","p_current_period_end":"2026-03-14T12:37:25Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-14 13:37:44","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-14 13:37:44","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T0i7XCmOXyFMbar8gLVhbHR","user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:37:44","message":"CANCEL RESET INDIVIDUAL: Compteurs individuels remis \u00e0 z\u00e9ro","context":{"user_id":"3907a1cc-87db-4d5b-bbe7-d56f96cdb120","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:39:42","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1TArTlCmOXyFMbarPALo7JcB","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-14 13:39:42","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1TArRoCmOXyFMbarIOAWtHcy","subscription_id":null,"amount_paid":0,"customer_id":"cus_TyfQe9d5Fu14PO"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1TBESOCmOXyFMbarPuolLu5j","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","customer_id":"cus_TmNSWFuQ1ZP4tB","status":"active","plan_id":"individual_starter"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768482671},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-03-15T13:11:11Z","current_period_end":"2026-04-15T13:11:11Z","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","data":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-03-15 13:11:49","current_period_start":"2026-03-15T13:11:11Z","current_period_end":"2026-04-15T13:11:11Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:49","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 14:11:49","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","p_stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","p_stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","p_status":"active","p_current_period_start":"2026-03-15T13:11:11Z","p_current_period_end":"2026-04-15T13:11:11Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 14:11:50","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 14:11:50","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:50","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","cancel_at_period_end":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:50","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","current_period_start":null,"current_period_end":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:50","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":200,"response":{"message":"Pas d'abonnement actif ou annulation en cours - pas de reset","success":true,"reset_performed":false}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:11:50","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","message":"Raison inconnue"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:13:21","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1TBETsCmOXyFMbareMWJvM6r","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 14:13:21","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1TBESMCmOXyFMbarfEbB55l2","subscription_id":null,"amount_paid":100,"customer_id":"cus_TmNSWFuQ1ZP4tB"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1TBJoECmOXyFMbar9qVBhMMH","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","customer_id":"cus_TmNSWFuQ1ZP4tB"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:43","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1768482671},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-03-15T13:11:11Z","current_period_end":"2026-04-15T13:11:11Z","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","data":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","status":"canceled","plan_id":"individual_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-03-15 18:54:44","current_period_start":"2026-03-15T13:11:11Z","current_period_end":"2026-04-15T13:11:11Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 19:54:44","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","p_stripe_subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","p_stripe_customer_id":"cus_TmNSWFuQ1ZP4tB","p_status":"canceled","p_current_period_start":"2026-03-15T13:11:11Z","p_current_period_end":"2026-04-15T13:11:11Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 19:54:44","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","http_code":200,"response":{"success":false,"error":"insert or update on table \"user_subscriptions\" violates foreign key constraint \"user_subscriptions_user_id_fkey\"","subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-03-15 19:54:44","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SpqL4CmOXyFMbarDNR6EJ7k","user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-15 19:54:44","message":"CANCEL RESET INDIVIDUAL: Compteurs individuels remis \u00e0 z\u00e9ro","context":{"user_id":"16474c3b-3b1d-4193-bd5e-d84845d7f9b3","http_code":204},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-23 21:53:55","message":"ADD_PROPERTIES (web): D\u00e9but","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","additional_properties":1,"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","account_type":"individual","source":"web"},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:56","message":"ADD_PROPERTIES (web): Autorisation valid\u00e9e","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa"},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:56","message":"ADD_PROPERTIES (web): InvoiceItem cr\u00e9\u00e9","context":{"invoice_item_id":"ii_1TEFU0CmOXyFMbartLrQg2ND","amount":100,"quantity":1},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:56","message":"ADD_PROPERTIES (web): Facture cr\u00e9\u00e9e","context":{"invoice_id":"in_1TEFU0CmOXyFMbarIo0nZOMw"},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:57","message":"ADD_PROPERTIES (web): Facture finalis\u00e9e","context":{"invoice_id":"in_1TEFU0CmOXyFMbarIo0nZOMw","status":"paid","paid":null},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:58","message":"ADD_PROPERTIES (web): Paiement confirm\u00e9","context":{"invoice_id":"in_1TEFU0CmOXyFMbarIo0nZOMw"},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-03-23 21:53:59","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1TEFU2CmOXyFMbarRmGrDxEC","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-23 21:53:59","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1TEFU0CmOXyFMbarIo0nZOMw","subscription_id":null,"amount_paid":0,"customer_id":"cus_U7xLHAupOLWiSo"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-03-23 21:53:59","message":"ADD_PROPERTIES (web): RPC Supabase r\u00e9ussie","context":{"properties_added":1},"ip":"2a02:a03f:6792:7a00:79e6:c7bc:e933:5082","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-04-01 10:31:32","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_UFprH6UlFpH5Yo","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:c44d:0:e0e0:c039:665a:21f","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-04-01 10:31:32","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_UFprH6UlFpH5Yo","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:c44d:0:e0e0:c039:665a:21f","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-04-01 10:32:35","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1THKCUCmOXyFMbarjGFD8Lnd","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","customer_id":"cus_UFprH6UlFpH5Yo","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","payment_status":"paid"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","amount_total":0,"currency":"eur"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","rpc_result":{"success":true,"data":{"debug":{"agency_id":"074a6d9b-c126-4620-bb50-e8dc699b53bc","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-01 10:32:35","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b1vmQojRzesHiYSaa0g5UonieUAyljhEf0Z2cTFUVDWU11mMbx7FRAw7Av","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","properties_added":1},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:24:25","message":"Session Checkout cr\u00e9\u00e9e (plateforme web)","context":{"session_id":"cs_live_b1HcjcznBHpxwoe3Kyw4I4iVdb1FJSc6ojJbeJsM9rdjyNiXpknlomT1UH","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","mode":"subscription","price_id":"price_1SkL6RCmOXyFMbarn0IKisle"},"ip":"109.135.25.185","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.3 Safari\/605.1.15"} {"timestamp":"2026-04-02 07:26:41","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1THdm8CmOXyFMbarT0znsPlZ","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b1HcjcznBHpxwoe3Kyw4I4iVdb1FJSc6ojJbeJsM9rdjyNiXpknlomT1UH","customer_id":"cus_UGA4wVgUQghymZ","payment_status":"paid","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","mode":"subscription","metadata":{"plan_id":"individual_pro","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","source":"web","account_type":"individual"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"Abonnement r\u00e9cup\u00e9r\u00e9 depuis Checkout Session","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","status":"active","customer_id":"cus_UGA4wVgUQghymZ","plan_id":"individual_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"\ud83e\uddf9 CLEANUP: Recherche des anciens abonnements Stripe \u00e0 annuler","context":{"customer_id":"cus_UGA4wVgUQghymZ","new_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1THdm9CmOXyFMbarBxSt07SU","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1THdleCmOXyFMbar3OhbrKXB","subscription_id":null,"amount_paid":3450,"customer_id":"cus_UGA4wVgUQghymZ"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"\ud83d\udd04 CLEANUP: Abonnement actuel (garder)","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","plan_id":"individual_pro"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:41","message":"\ud83c\udfc1 CLEANUP: Nettoyage termin\u00e9","context":{"customer_id":"cus_UGA4wVgUQghymZ","new_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","canceled_count":0,"errors":[]},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","old_plan_id":null},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1775107570},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\ud83e\uddea DATES WEBHOOK (action=created_from_checkout)","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created_from_checkout","current_period_start":"2026-04-02T05:26:10Z","current_period_end":"2026-05-02T05:26:10Z","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created_from_checkout","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","data":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","stripe_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","stripe_customer_id":"cus_UGA4wVgUQghymZ","status":"active","plan_id":"individual_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-04-02 05:26:42","current_period_start":"2026-04-02T05:26:10Z","current_period_end":"2026-05-02T05:26:10Z"}},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","p_stripe_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","p_stripe_customer_id":"cus_UGA4wVgUQghymZ","p_status":"active","p_current_period_start":"2026-04-02T05:26:10Z","p_current_period_end":"2026-05-02T05:26:10Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:42","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","http_code":200,"response":{"success":true,"action":"inserted","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:42","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","http_code":200,"action":"created_from_checkout","result":"unknown"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\u2705 Abonnement activ\u00e9 dans Supabase depuis Checkout Session","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","session_id":"cs_live_b1HcjcznBHpxwoe3Kyw4I4iVdb1FJSc6ojJbeJsM9rdjyNiXpknlomT1UH"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.created","event_id":"evt_1THdm9CmOXyFMbarp1sqqm5z","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Abonnement cr\u00e9\u00e9 via webhook","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","customer_id":"cus_UGA4wVgUQghymZ","status":"active","plan_id":"individual_pro"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC DECISION","context":{"plan_id":"individual_pro","should_sync":true,"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","old_plan_id":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_pro","max_agents":1,"mode":"individual","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","plan_id":"individual_pro","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1775107570},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\ud83e\uddea DATES WEBHOOK (action=created)","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"created","current_period_start":"2026-04-02T05:26:10Z","current_period_end":"2026-05-02T05:26:10Z","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"created","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","data":{"user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","stripe_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","stripe_customer_id":"cus_UGA4wVgUQghymZ","status":"active","plan_id":"individual_pro","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-04-02 05:26:42","current_period_start":"2026-04-02T05:26:10Z","current_period_end":"2026-05-02T05:26:10Z","created_at":"2026-04-02 05:26:10"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-02 07:26:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","p_stripe_subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","p_stripe_customer_id":"cus_UGA4wVgUQghymZ","p_status":"active","p_current_period_start":"2026-04-02T05:26:10Z","p_current_period_end":"2026-05-02T05:26:10Z","p_plan_id":"individual_pro","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:43","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-02 07:26:43","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1THdm4CmOXyFMbarzdTeZJH2","user_id":"6b7dae63-f8c2-4141-92c8-9a4c4ec975b9","http_code":200,"action":"created","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:57:26","message":"Cr\u00e9ation Checkout Session - Paiement \u00e0 l'unit\u00e9","context":{"customer_id":"cus_UHu1ptLkwMR69X","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","product_id":"prod_TnoprDwLzf5oAU"},"ip":"2a02:a03f:c44d:0:9001:cf25:8aa4:453b","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-04-06 22:57:27","message":"Checkout Session cr\u00e9\u00e9e avec succ\u00e8s (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","url":"https:\/\/checkout.stripe.com\/c\/pay\/cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a#fid1d2BpamRhQ2prcSc%2FJ1FscWxpaWxwaCVSYGcnKSdnandhYHdWcXxpYCc%2FJ3dqcGthJyknaWpmZGlgJz8nY3cnKSdkdWxOYHwnPyd1blppbHNgWjA0V2N8MHBGaEpdfENIZ2R3S2xkTENBY0JqUVdoZzBIbGZEYk5SYHVWNldxaWwwUGIxckBMN0dNbDxidFRLb1Y2SUdRNTZsPGlnMlNQPEJcc1U3VTRgY1J0NTVPPEp0fW9USicpJ2N3amhWYHdzYHcnP3F3cGApJ2dkZm5id2pwa2FGamlqdyc%2FJyZjY2NjY2MnKSdpZHxqcHFRfHVgJz8naHBpcWxabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl","customer_id":"cus_UHu1ptLkwMR69X","amount_total":899,"currency":"eur","mode":"payment"},"ip":"2a02:a03f:c44d:0:9001:cf25:8aa4:453b","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/26.2 Mobile\/15E148 Safari\/604.1"} {"timestamp":"2026-04-06 22:58:27","message":"Webhook re\u00e7u","context":{"event_type":"checkout.session.completed","event_id":"evt_1TJKE2CmOXyFMbarRC3NZZza","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"Checkout Session compl\u00e9t\u00e9e via webhook","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","customer_id":"cus_UHu1ptLkwMR69X","payment_status":"paid","subscription_id":null,"mode":"payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"\ud83d\udd0d Webhook: Mode payment d\u00e9tect\u00e9","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","session_type":"single_property_payment","metadata":{"app":"web","type":"single_property_payment","price_id":"price_1SqDBdCmOXyFMbar7Zsxc3T7","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","product_id":"prod_TnoprDwLzf5oAU"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"\u2705 Paiement \u00e0 l'unit\u00e9 d\u00e9tect\u00e9 - Appel handleSinglePropertyPayment","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","payment_status":"paid"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"Traitement paiement \u00e0 l'unit\u00e9","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","amount_total":0,"currency":"eur"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"R\u00e9ponse RPC Supabase (paiement \u00e0 l'unit\u00e9)","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","rpc_result":{"success":true,"data":{"debug":{"agency_id":"074a6d9b-c126-4620-bb50-e8dc699b53bc","reset_logic":{"new_used":0,"old_used":0,"new_purchased":1,"old_purchased":1},"rows_updated":1},"message":"1 propri\u00e9t\u00e9 ajout\u00e9e via paiement \u00e0 l'unit\u00e9 (used_properties r\u00e9initialis\u00e9 \u00e0 0)","success":true,"new_used":0,"old_used":0,"account_type":"single_payment","old_purchased":1,"reset_applied":true,"properties_added":1,"new_total_purchased":1},"function":"add_properties_rpc"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-06 22:58:27","message":"\u2705 Paiement \u00e0 l'unit\u00e9 trait\u00e9 avec succ\u00e8s","context":{"session_id":"cs_live_b178h4U165xHjlzMT8R1mFRFvWzDWOSlpgCoDovFzQNClOXqqsj4Vd5U1a","user_id":"47a63e5d-5c63-4b0d-a842-78de71b60be2","properties_added":1},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1TJVmuCmOXyFMbartFzJX3BC","livemode":true},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","customer_id":"cus_TkNdJhKJfAmVeT","status":"active","plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","old_plan_id":"individual_starter"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1767777482},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-04-07T09:18:02Z","current_period_end":"2026-05-07T09:18:02Z","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","data":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","stripe_customer_id":"cus_TkNdJhKJfAmVeT","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-04-07 09:19:13","current_period_start":"2026-04-07T09:18:02Z","current_period_end":"2026-05-07T09:18:02Z"}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:13","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:19:13","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","p_stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","p_stripe_customer_id":"cus_TkNdJhKJfAmVeT","p_status":"active","p_current_period_start":"2026-04-07T09:18:02Z","p_current_period_end":"2026-05-07T09:18:02Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:19:14","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:19:14","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:14","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","cancel_at_period_end":false},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:14","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","current_period_start":null,"current_period_end":null},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:14","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:19:14","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","message":"Raison inconnue"},"ip":"54.187.216.72","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:21:02","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1TJVofCmOXyFMbarEryrS6iS","livemode":true},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:21:02","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1TJVmtCmOXyFMbaraV4S5Mof","subscription_id":null,"amount_paid":4500,"customer_id":"cus_TkNdJhKJfAmVeT"},"ip":"54.187.205.235","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1TJW0vCmOXyFMbar6qa3bquV","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","customer_id":"cus_TkNdJhKJfAmVeT"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1767777482},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-04-07T09:18:02Z","current_period_end":"2026-05-07T09:18:02Z","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","data":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","stripe_customer_id":"cus_TkNdJhKJfAmVeT","status":"canceled","plan_id":"individual_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-04-07 09:33:42","current_period_start":"2026-04-07T09:18:02Z","current_period_end":"2026-05-07T09:18:02Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:42","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:42","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","p_stripe_subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","p_stripe_customer_id":"cus_TkNdJhKJfAmVeT","p_status":"canceled","p_current_period_start":"2026-04-07T09:18:02Z","p_current_period_end":"2026-05-07T09:18:02Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:43","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:43","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SmssQCmOXyFMbar6WjuAE8e","user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:43","message":"CANCEL RESET INDIVIDUAL: Compteurs individuels remis \u00e0 z\u00e9ro","context":{"user_id":"b21d972d-21cb-4c9c-968d-62afc87f5d2a","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.deleted","event_id":"evt_1TJW14CmOXyFMbarPxoOSrwJ","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"Abonnement supprim\u00e9 via webhook","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","customer_id":"cus_TvJcYW9HCiJq3e"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SYNC DECISION","context":{"plan_id":"agency_starter","should_sync":true,"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","old_plan_id":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"agency_starter","max_agents":2,"mode":"group","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","plan_id":"agency_starter","new_max_agents":2,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1770713161},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"\ud83e\uddea DATES WEBHOOK (action=deleted)","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"deleted","current_period_start":"2026-03-10T08:46:01Z","current_period_end":"2026-04-10T08:46:01Z","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"deleted","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","data":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","stripe_customer_id":"cus_TvJcYW9HCiJq3e","status":"canceled","plan_id":"agency_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":false,"updated_at":"2026-04-07 09:33:51","current_period_start":"2026-03-10T08:46:01Z","current_period_end":"2026-04-10T08:46:01Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:51","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:51","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","p_stripe_subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","p_stripe_customer_id":"cus_TvJcYW9HCiJq3e","p_status":"canceled","p_current_period_start":"2026-03-10T08:46:01Z","p_current_period_end":"2026-04-10T08:46:01Z","p_plan_id":"agency_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:51","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-07 11:33:51","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1SzCadCmOXyFMbarg74oSW76","user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":200,"action":"deleted","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:52","message":"CANCEL AGENTS: Associations agents supprim\u00e9es pour admin annul\u00e9","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-07 11:33:52","message":"CANCEL RESET: Compteurs agence remis \u00e0 z\u00e9ro","context":{"user_id":"7c7d34a3-f298-46b1-8879-051288c3a24d","http_code":204},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1TKwHmCmOXyFMbarZvyMZ2o2","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","old_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1773215323},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-04-11T07:48:43Z","current_period_end":"2026-05-11T07:48:43Z","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","data":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","stripe_customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":true,"cancel_at_period_end":false,"updated_at":"2026-04-11 07:48:59","current_period_start":"2026-04-11T07:48:43Z","current_period_end":"2026-05-11T07:48:43Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-11 09:48:59","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"58333cdc-0023-436d-a9df-660f4a394caa","p_stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","p_stripe_customer_id":"cus_U7xLHAupOLWiSo","p_status":"active","p_current_period_start":"2026-04-11T07:48:43Z","p_current_period_end":"2026-05-11T07:48:43Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":true}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-11 09:48:59","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-11 09:48:59","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"BILLING RESET: V\u00e9rification autoris\u00e9e","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","cancel_at_period_end":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"BILLING RESET: V\u00e9rification remise \u00e0 z\u00e9ro","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","current_period_start":null,"current_period_end":null},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"BILLING RESET: R\u00e9sultat","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","http_code":200,"response":{"message":"Aucune nouvelle p\u00e9riode de facturation d\u00e9tect\u00e9e","success":false,"reset_performed":false}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:48:59","message":"BILLING RESET: \u2139\ufe0f Pas de remise \u00e0 z\u00e9ro n\u00e9cessaire","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","message":"Raison inconnue"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:50:31","message":"Webhook re\u00e7u","context":{"event_type":"invoice.payment_succeeded","event_id":"evt_1TKwJGCmOXyFMbarxZhvZLZQ","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-11 09:50:31","message":"Paiement de facture r\u00e9ussi","context":{"invoice_id":"in_1TKwHkCmOXyFMbarulLrMKnM","subscription_id":null,"amount_paid":2300,"customer_id":"cus_U7xLHAupOLWiSo"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:03","message":"Abonnement annul\u00e9 (fin de p\u00e9riode)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","cancel_at_period_end":true,"cancel_at":"2026-05-11 09:48:43"},"ip":"2a02:a03f:6792:7a00:682f:e1f4:7cb9:6359","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-04-13 09:05:03","message":"cancel-subscription: Sync Supabase user_subscriptions","context":{"stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","cancel_at_period_end":true,"http_code":200},"ip":"2a02:a03f:6792:7a00:682f:e1f4:7cb9:6359","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-04-13 09:05:03","message":"cancel-subscription: Email annulation envoy\u00e9","context":{"email":"expertise.lenz@gmail.com","http_code":200,"curl_error":null},"ip":"2a02:a03f:6792:7a00:682f:e1f4:7cb9:6359","user_agent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/146.0.0.0 Safari\/537.36"} {"timestamp":"2026-04-13 09:05:04","message":"Webhook re\u00e7u","context":{"event_type":"customer.subscription.updated","event_id":"evt_1TLeYMCmOXyFMbarz42EMAkG","livemode":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"Abonnement mis \u00e0 jour via webhook","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SYNC DECISION","context":{"plan_id":"individual_starter","should_sync":true,"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","old_plan_id":"individual_starter"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SYNC AGENCY: D\u00e9but synchronisation max_agents","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SYNC AGENCY: Configuration d\u00e9termin\u00e9e","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SYNC AGENCY: Mise \u00e0 jour sans subscription_plan","context":{"plan_id":"individual_starter","max_agents":1,"mode":"individual","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","note":"subscription_plan non mis \u00e0 jour - source de v\u00e9rit\u00e9: user_subscriptions.plan_id"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SYNC AGENCY: max_agents synchronis\u00e9","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","plan_id":"individual_starter","new_max_agents":1,"http_code":200,"updated_agencies":0},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"Debug timestamps Stripe","context":{"current_period_start_raw":null,"current_period_end_raw":null,"created_raw":1773215323},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"\ud83e\uddea DATES WEBHOOK (action=updated)","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","current_period_start":null,"current_period_start_type":"NULL","current_period_end":null,"current_period_end_type":"NULL","start_gt_0":false,"end_gt_0":false,"hasValidDates_will_be":false,"start_formatted":"(invalid)","end_formatted":"(invalid)"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"\ud83d\udd0d D\u00e9tection is_yearly depuis price interval","context":{"interval":"month","is_yearly_from_price":false,"is_yearly_from_metadata":false},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"\u2705 Dates fournies par Stripe (format ISO8601)","context":{"action":"updated","current_period_start":"2026-04-11T07:48:43Z","current_period_end":"2026-05-11T07:48:43Z","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","is_yearly":false,"source":"items.data[0]"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"Donn\u00e9es pr\u00e9par\u00e9es pour Supabase","context":{"action":"updated","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","data":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","stripe_customer_id":"cus_U7xLHAupOLWiSo","status":"active","plan_id":"individual_starter","is_yearly":false,"auto_renew":false,"cancel_at_period_end":true,"updated_at":"2026-04-13 07:05:04","current_period_start":"2026-04-11T07:48:43Z","current_period_end":"2026-05-11T07:48:43Z"}},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"SUPABASE FUNCTION - D\u00e9but","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt"},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-13 09:05:04","message":"SUPABASE FUNCTION - Param\u00e8tres","context":{"function_params":{"p_user_id":"58333cdc-0023-436d-a9df-660f4a394caa","p_stripe_subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","p_stripe_customer_id":"cus_U7xLHAupOLWiSo","p_status":"active","p_current_period_start":"2026-04-11T07:48:43Z","p_current_period_end":"2026-05-11T07:48:43Z","p_plan_id":"individual_starter","p_is_yearly":false,"p_auto_renew":false}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-13 09:05:04","message":"SUPABASE FUNCTION - Succ\u00e8s","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","http_code":200,"response":{"success":true,"action":"updated","subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa"}},"ip":"54.36.142.130","user_agent":"unknown"} {"timestamp":"2026-04-13 09:05:04","message":"Abonnement sauvegard\u00e9 via webhook insert","context":{"subscription_id":"sub_1T9hWGCmOXyFMbarzbT8CGrt","user_id":"58333cdc-0023-436d-a9df-660f4a394caa","http_code":200,"action":"updated","result":"unknown"},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"} {"timestamp":"2026-04-13 09:05:04","message":"BILLING RESET: Ignor\u00e9 (abonnement en cours d'annulation)","context":{"user_id":"58333cdc-0023-436d-a9df-660f4a394caa","cancel_at_period_end":true},"ip":"54.187.174.169","user_agent":"Stripe\/1.0 (+https:\/\/stripe.com\/docs\/webhooks)"}