2026-03-30 11:47:24 [INFO] POST reçu | {"action":"init_payment","keys":["ajax_action","email","nom_etablissement","plan","activity_type"]} 2026-03-30 11:47:24 [INFO] init_payment | {"email":"comallagency@gmail.com","nom":"gtu","plan":"mensuel"} 2026-03-30 11:47:24 [DEBUG] Airtable SEARCH | {"formula":"{email} = 'comallagency@gmail.com'"} 2026-03-30 11:47:26 [INFO] Airtable SEARCH result | {"code":200,"found":1} 2026-03-30 11:47:26 [INFO] Client existant trouvé | {"id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:26 [DEBUG] Airtable PATCH | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":["nom_etablissement","plan","activity_type","parcours_status"]} 2026-03-30 11:47:26 [INFO] Airtable PATCH OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:26 [INFO] Création customer Stripe 2026-03-30 11:47:26 [DEBUG] Stripe POST /v1/customers | {"keys":["email","name","metadata"]} 2026-03-30 11:47:27 [INFO] Stripe OK | {"endpoint":"\/v1\/customers","id":"cus_UF6d6Q03x3A5PX"} 2026-03-30 11:47:27 [INFO] init_payment OK | {"customer_id":"cus_UF6d6Q03x3A5PX","airtable_id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:39 [INFO] POST reçu | {"action":"confirm_subscription","keys":["ajax_action","customer_id","price_id","payment_method","airtable_id","email","nom_etablissement","plan"]} 2026-03-30 11:47:39 [INFO] confirm_subscription | {"customer_id":"cus_UF6d6Q03x3A5PX","price_id":"price_1T1Mh5RVbk0a9x0cna56ZSo0","pm":"pm_1TGcQ3R...","at_id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:39 [INFO] Attach payment method 2026-03-30 11:47:39 [DEBUG] Stripe POST /v1/payment_methods/pm_1TGcQ3RVbk0a9x0coAbvUPsc/attach | {"keys":["customer"]} 2026-03-30 11:47:40 [INFO] Stripe OK | {"endpoint":"\/v1\/payment_methods\/pm_1TGcQ3RVbk0a9x0coAbvUPsc\/attach","id":"pm_1TGcQ3RVbk0a9x0coAbvUPsc"} 2026-03-30 11:47:40 [DEBUG] Stripe POST /v1/customers/cus_UF6d6Q03x3A5PX | {"keys":["invoice_settings"]} 2026-03-30 11:47:40 [INFO] Stripe OK | {"endpoint":"\/v1\/customers\/cus_UF6d6Q03x3A5PX","id":"cus_UF6d6Q03x3A5PX"} 2026-03-30 11:47:40 [INFO] Création abonnement Stripe | {"price_id":"price_1T1Mh5RVbk0a9x0cna56ZSo0"} 2026-03-30 11:47:40 [DEBUG] Stripe POST /v1/subscriptions | {"keys":["customer","items","default_payment_method","expand"]} 2026-03-30 11:47:44 [INFO] Stripe OK | {"endpoint":"\/v1\/subscriptions","id":"sub_1TGcQ4RVbk0a9x0c5jCrEmhs"} 2026-03-30 11:47:44 [INFO] Abonnement créé | {"sub_id":"sub_1TGcQ4RVbk0a9x0c5jCrEmhs","end":"2026-04-30"} 2026-03-30 11:47:44 [DEBUG] Airtable PATCH | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":["subscription_status","stripe_customer_id","stripe_subscription_id","current_period_start","current_period_end","magic_link_token","date_inscription","parcours_status","payment_confirmed_at"]} 2026-03-30 11:47:44 [INFO] Airtable PATCH OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:44 [INFO] Email send | {"to":"comallagency@gmail.com","subject":"Paiement confirmé — Finalisez votre dossier HACCP","sent":true} 2026-03-30 11:47:44 [INFO] confirm_subscription OK | {"token":"8bea4eed..."} 2026-03-30 11:47:47 [INFO] POST reçu | {"action":"save_declaration","keys":["ajax_action","client_id","token"]} 2026-03-30 11:47:47 [INFO] save_declaration | {"client_id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:47 [DEBUG] Airtable GET | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":[]} 2026-03-30 11:47:48 [INFO] Airtable GET OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:48 [DEBUG] Airtable PATCH | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":["cgv_acceptees","parcours_status"]} 2026-03-30 11:47:48 [INFO] Airtable PATCH OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:47:48 [INFO] Declaration saved OK 2026-03-30 11:48:15 [INFO] POST reçu | {"action":"submit_haccp","keys":["ajax_action","client_id","token","siret","raison_sociale","adresse","code_postal","ville","pays","responsable","telephone","staff_count","zones","zones_nuisibles","freq_surveillance","freq_nettoyage","freq_dechets","produits_nettoyage","controle_reception","types_stockage"]} 2026-03-30 11:48:15 [INFO] submit_haccp START | {"client_id":"recf6KZggr3sjwySl","token_len":64,"post_keys":"ajax_action,client_id,token,siret,raison_sociale,adresse,code_postal,ville,pays,responsable,telephone,staff_count,zones,zones_nuisibles,freq_surveillance,freq_nettoyage,freq_dechets,produits_nettoyage,controle_reception,types_stockage"} 2026-03-30 11:48:15 [DEBUG] Airtable GET | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":[]} 2026-03-30 11:48:15 [INFO] Airtable GET OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:48:15 [INFO] Client trouvé | {"status":"active","token_match":true} 2026-03-30 11:48:15 [INFO] Création établissement Airtable | {"nom":"gtu","siret":"1222233","zones":"Cuisine, Zone de préparation"} 2026-03-30 11:48:15 [DEBUG] Airtable POST | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tblZzVv6s6xpjZei7","body_keys":["name","siret","raison_sociale","adresse","city","telephone","responsible_name","staff_count","zones","zones_nuisibles","freq_surveillance","freq_nettoyage","freq_dechets","produits_nettoyage","controle_reception","types_stockage","activity_type","client_id","version_count"]} 2026-03-30 11:48:16 [INFO] Airtable POST OK | {"code":200,"id":"recI3mAzOneHoGQ5O"} 2026-03-30 11:48:16 [INFO] Établissement créé | {"estab_id":"recI3mAzOneHoGQ5O"} 2026-03-30 11:48:16 [DEBUG] Airtable PATCH | {"url":"https:\/\/api.airtable.com\/v0\/apps4ghLAXNMLkq4r\/tbliVOGv17qq4ILEp\/recf6KZggr3sjwySl","body_keys":["cgv_acceptees","parcours_status","form2_completed_at"]} 2026-03-30 11:48:16 [INFO] Airtable PATCH OK | {"code":200,"id":"recf6KZggr3sjwySl"} 2026-03-30 11:48:16 [INFO] Envoi réponse client OK — démarrage génération 2026-03-30 11:48:16 [INFO] Début generer_documents() 2026-03-30 11:48:16 [INFO] === DÉBUT GÉNÉRATION DOCUMENTS === | {"client_id":"recf6KZggr3sjwySl","estab_id":"recI3mAzOneHoGQ5O","email":"comallagency@gmail.com"} 2026-03-30 11:48:16 [DEBUG] Payload Docupilot | {"keys":["client_id","establishment_id","email","magic_link_token","nom_etablissement","siret","raison_sociale","adresse","adresse_rue","code_postal","ville","pays","responsable","telephone","activite","staff_count","zones","zones_nuisibles","freq_surveillance","freq_nettoyage","freq_dechets","produits_nettoyage","controle_reception","types_stockage","plan","date_generation","validity_end","reference_dossier","version_document"],"siret":"1222233"} 2026-03-30 11:48:16 [INFO] Génération doc 1/7 | {"type":"Attestation","template_id":"104458"} 2026-03-30 11:48:16 [DEBUG] Docupilot merge | {"template":"104458","data_keys":["client_id","establishment_id","email","magic_link_token","nom_etablissement","siret","raison_sociale","adresse","adresse_rue","code_postal","ville","pays","responsable","telephone","activite","staff_count","zones","zones_nuisibles","freq_surveillance","freq_nettoyage","freq_dechets","produits_nettoyage","controle_reception","types_stockage","plan","date_generation","validity_end","reference_dossier","version_document"]} 2026-03-30 11:48:17 [ERROR] Docupilot HTTP 403 | {"template":"104458","response":"\n\n\n
\n \n \n