{"info":{"name":"MARKO External API (live)","_postman_id":"marko-external-api-live","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"},"variable":[{"key":"baseUrl","value":"https://partner-api.marko.fr"},{"key":"bearerToken","value":"YOUR_BEARER_HERE"},{"key":"publicKeyId","value":"YOUR_PUBLIC_KEY_ID"},{"key":"apiKey","value":"YOUR_API_KEY"},{"key":"timestamp","value":"1776926400"},{"key":"nonce","value":"UNIQUE_NONCE_16_CHARS"},{"key":"signature","value":"HMAC_SHA256_HEX_SIGNATURE"},{"key":"idempotencyKey_deals_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_deals_notes_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operations_upsert","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operations_batch","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operations_notes_upsert","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operations_comments_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_documents_attach_operation","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_documents_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_documents_upload","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_resend_invitation","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_reset_password","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_delete","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_saved_views_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_custom_dashboards_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_users_rgpd_erasure","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_fonds_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_spvs_external_upsert","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_spvs_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operateurs_external_upsert","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operateurs_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operateurs_third_party_risks_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_notifications_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_calendar_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_enrichment_siren_resolve","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_operations_repayments_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_reporting_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_toggle","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_run","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_ai_extraction_jobs_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_recommendations_materialize","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_workflows_recommendations_create_workflow","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_tasks_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."},{"key":"idempotencyKey_tasks_labels_create","value":"","description":"Generated on first send and retained for retries. Clear before a different logical write."}],"item":[{"name":"POST auth.token.exchange","request":{"method":"POST","header":[{"key":"X-Request-ID","value":"marko-auth-token-exchange"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/auth/token","host":["{{baseUrl}}"],"path":["v1","auth","token"],"query":[]},"description":"Echange une cle API brute contre un bearer MARKO court. La signature HMAC-SHA256 est calculee avec la cle API brute sur le message canonique `MARKO-EXTERNAL-API-TOKEN-V1\\n{key_id}\\n{timestamp}\\n{nonce}`. Utilisez ensuite `Authorization: Bearer YOUR_BEARER_HERE` sur les endpoints metier.","body":{"mode":"raw","raw":"{\n  \"key_id\": \"{{publicKeyId}}\",\n  \"timestamp\": {{timestamp}},\n  \"nonce\": \"{{nonce}}\",\n  \"signature\": \"{{signature}}\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"X-Request-ID","value":"marko-auth-token-exchange"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/auth/token","host":["{{baseUrl}}"],"path":["v1","auth","token"],"query":[]},"description":"Echange une cle API brute contre un bearer MARKO court. La signature HMAC-SHA256 est calculee avec la cle API brute sur le message canonique `MARKO-EXTERNAL-API-TOKEN-V1\\n{key_id}\\n{timestamp}\\n{nonce}`. Utilisez ensuite `Authorization: Bearer YOUR_BEARER_HERE` sur les endpoints metier.","body":{"mode":"raw","raw":"{\n  \"key_id\": \"{{publicKeyId}}\",\n  \"timestamp\": {{timestamp}},\n  \"nonce\": \"{{nonce}}\",\n  \"signature\": \"{{signature}}\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"access_token\": \"YOUR_BEARER_HERE\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 900,\n  \"issued_at\": \"2026-04-23T10:00:00Z\",\n  \"expires_at\": \"2026-04-23T10:15:00Z\",\n  \"key_id\": \"YOUR_PUBLIC_KEY_ID\",\n  \"environment\": \"live\",\n  \"entity_slug\": \"clubfunding\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const apiKey = pm.collectionVariables.get('apiKey') || pm.environment.get('apiKey');","const keyId = pm.collectionVariables.get('publicKeyId') || pm.environment.get('publicKeyId');","if (!apiKey || !keyId) { throw new Error('Set apiKey and publicKeyId before requesting a bearer token.'); }","const timestamp = Math.floor(Date.now() / 1000).toString();","const nonce = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);","const message = `MARKO-EXTERNAL-API-TOKEN-V1\\n${keyId}\\n${timestamp}\\n${nonce}`;","const signature = CryptoJS.HmacSHA256(message, apiKey).toString(CryptoJS.enc.Hex);","pm.collectionVariables.set('timestamp', timestamp);","pm.collectionVariables.set('nonce', nonce);","pm.collectionVariables.set('signature', signature);"]}}]},{"name":"GET entity.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-entity-get"}],"url":{"raw":"{{baseUrl}}/v1/entity","host":["{{baseUrl}}"],"path":["v1","entity"],"query":[]},"description":"Expose l'entite rattachee a la cle API, sans changer de contexte."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-entity-get"}],"url":{"raw":"{{baseUrl}}/v1/entity","host":["{{baseUrl}}"],"path":["v1","entity"],"query":[]},"description":"Expose l'entite rattachee a la cle API, sans changer de contexte."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"name\": \"Clubfunding\",\n  \"type\": \"client\",\n  \"siren\": \"123456789\",\n  \"mode_reporting\": \"trimestriel\",\n  \"frequence_reporting\": 3,\n  \"date_reference_reporting\": \"2026-03-31\",\n  \"risk_threshold\": 75,\n  \"zone_vacances\": \"A\",\n  \"ai_enabled\": true\n}"}]},{"name":"GET portfolio.summary","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-portfolio-summary"}],"url":{"raw":"{{baseUrl}}/v1/portfolio/summary","host":["{{baseUrl}}"],"path":["v1","portfolio","summary"],"query":[]},"description":"Retourne un resume portefeuille agrege pour l'entite de la cle, sans parametre de filtre. Les totaux excluent les ressources supprimees et les repartitions utilisent les codes de taxonomie effectifs."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-portfolio-summary"}],"url":{"raw":"{{baseUrl}}/v1/portfolio/summary","host":["{{baseUrl}}"],"path":["v1","portfolio","summary"],"query":[]},"description":"Retourne un resume portefeuille agrege pour l'entite de la cle, sans parametre de filtre. Les totaux excluent les ressources supprimees et les repartitions utilisent les codes de taxonomie effectifs."},"status":"OK","code":200,"body":"{\n  \"total_operations\": 12,\n  \"total_nominal\": 24500000.0,\n  \"total_fonds\": 2,\n  \"total_spvs\": 5,\n  \"total_operateurs\": 4,\n  \"operations_by_status\": {\n    \"instruction\": 10,\n    \"cloture\": 2\n  },\n  \"operations_by_classe_actif\": {\n    \"residentiel\": 8,\n    \"bureaux\": 4\n  },\n  \"operations_by_type_investissement\": {\n    \"dette_senior\": 9,\n    \"obligation_simple\": 3\n  }\n}"}]},{"name":"GET deals.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-list"}],"url":{"raw":"{{baseUrl}}/v1/deals","host":["{{baseUrl}}"],"path":["v1","deals"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"status","value":"sourcing"}]},"description":"Expose le pipeline CRM pre-closing de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-list"}],"url":{"raw":"{{baseUrl}}/v1/deals","host":["{{baseUrl}}"],"path":["v1","deals"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"status","value":"sourcing"}]},"description":"Expose le pipeline CRM pre-closing de l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"deal_001\",\n      \"name\": \"Pipeline Demo\",\n      \"status\": \"sourcing\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"POST deals.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_deals_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals","host":["{{baseUrl}}"],"path":["v1","deals"],"query":[]},"description":"Crée un deal dans le pipeline pre-closing.\n\nPostman generates `idempotencyKey_deals_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pipeline Demo\",\n  \"status\": \"sourcing\",\n  \"classe_actif\": \"immobilier\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_deals_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals","host":["{{baseUrl}}"],"path":["v1","deals"],"query":[]},"description":"Crée un deal dans le pipeline pre-closing.\n\nPostman generates `idempotencyKey_deals_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pipeline Demo\",\n  \"status\": \"sourcing\",\n  \"classe_actif\": \"immobilier\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"deal_001\",\n  \"name\": \"Pipeline Demo\",\n  \"status\": \"sourcing\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_deals_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET deals.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-get"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Retourne un deal unitaire du pipeline."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-get"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Retourne un deal unitaire du pipeline."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"name\": \"Pipeline Demo\",\n  \"status\": \"ic\"\n}"}]},{"name":"PUT deals.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Met à jour un deal existant du pipeline.","body":{"mode":"raw","raw":"{\n  \"status\": \"closing\",\n  \"responsable\": \"Team Origination\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Met à jour un deal existant du pipeline.","body":{"mode":"raw","raw":"{\n  \"status\": \"closing\",\n  \"responsable\": \"Team Origination\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"status\": \"closing\"\n}"}]},{"name":"DELETE deals.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-delete"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Supprime logiquement un deal du pipeline."},"response":[]},{"name":"GET deals.notes.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-notes-list"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id/notes","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id","notes"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Expose les notes attachées à un deal."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-notes-list"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id/notes","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id","notes"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Expose les notes attachées à un deal."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"note_001\",\n      \"content\": \"Rendez-vous sponsor\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"POST deals.notes.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-notes-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_deals_notes_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id/notes","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id","notes"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Ajoute une note sur un deal du pipeline.\n\nPostman generates `idempotencyKey_deals_notes_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"content\": \"Rendez-vous sponsor planifié\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-notes-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_deals_notes_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/deals/:deal_id/notes","host":["{{baseUrl}}"],"path":["v1","deals",":deal_id","notes"],"query":[],"variable":[{"key":"deal_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the deal_id path parameter."}]},"description":"Ajoute une note sur un deal du pipeline.\n\nPostman generates `idempotencyKey_deals_notes_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"content\": \"Rendez-vous sponsor planifié\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"note_001\",\n  \"content\": \"Rendez-vous sponsor planifié\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_deals_notes_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"DELETE deals.notes.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-deals-notes-delete"}],"url":{"raw":"{{baseUrl}}/v1/deal-notes/:note_id","host":["{{baseUrl}}"],"path":["v1","deal-notes",":note_id"],"query":[],"variable":[{"key":"note_id","value":"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb","description":"Sample value for the note_id path parameter."}]},"description":"Supprime une note rattachée au pipeline deals."},"response":[]},{"name":"GET fonds.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-list"}],"url":{"raw":"{{baseUrl}}/v1/fonds","host":["{{baseUrl}}"],"path":["v1","fonds"],"query":[{"key":"limit","value":"50"},{"key":"offset","value":"0"}]},"description":"Retourne les fonds visibles pour l'entite de la cle, par page bornee. Les en-tetes X-Marko-Limit, X-Marko-Offset et X-Marko-Has-More decrivent la page."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-list"}],"url":{"raw":"{{baseUrl}}/v1/fonds","host":["{{baseUrl}}"],"path":["v1","fonds"],"query":[{"key":"limit","value":"50"},{"key":"offset","value":"0"}]},"description":"Retourne les fonds visibles pour l'entite de la cle, par page bornee. Les en-tetes X-Marko-Limit, X-Marko-Offset et X-Marko-Has-More decrivent la page."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"22222222-2222-2222-2222-222222222222\",\n    \"name\": \"Clubfunding Debt I\",\n    \"code\": \"CFD1\",\n    \"status\": \"active\",\n    \"date_creation\": \"2024-01-15\",\n    \"date_liquidation\": null\n  }\n]"}]},{"name":"GET spvs.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-list"}],"url":{"raw":"{{baseUrl}}/v1/spvs","host":["{{baseUrl}}"],"path":["v1","spvs"],"query":[{"key":"name","value":"SPV Paris 19"},{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222"},{"key":"limit","value":"50"},{"key":"offset","value":"0"}]},"description":"Permet de rechercher un SPV par nom exact insensible a la casse via `name`, et de filtrer par fonds via `fond_id`. Le filtre par nom est un controle avant creation, pas une garantie d'unicite concurrente; conservez l'identifiant MARKO et utilisez Idempotency-Key pour les ecritures. Les en-tetes X-Marko-Limit, X-Marko-Offset et X-Marko-Has-More decrivent la page."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-list"}],"url":{"raw":"{{baseUrl}}/v1/spvs","host":["{{baseUrl}}"],"path":["v1","spvs"],"query":[{"key":"name","value":"SPV Paris 19"},{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222"},{"key":"limit","value":"50"},{"key":"offset","value":"0"}]},"description":"Permet de rechercher un SPV par nom exact insensible a la casse via `name`, et de filtrer par fonds via `fond_id`. Le filtre par nom est un controle avant creation, pas une garantie d'unicite concurrente; conservez l'identifiant MARKO et utilisez Idempotency-Key pour les ecritures. Les en-tetes X-Marko-Limit, X-Marko-Offset et X-Marko-Has-More decrivent la page."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"33333333-3333-3333-3333-333333333333\",\n    \"fond_id\": \"22222222-2222-2222-2222-222222222222\",\n    \"name\": \"SPV Paris 19\",\n    \"siren\": \"987654321\",\n    \"forme_juridique\": \"SAS\",\n    \"montage\": \"direct\",\n    \"procedure_collective\": \"aucune\",\n    \"is_draft\": false,\n    \"created_at\": \"2026-02-01T09:15:00Z\",\n    \"updated_at\": \"2026-03-20T10:00:00Z\"\n  }\n]"}]},{"name":"GET operations.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-list"}],"url":{"raw":"{{baseUrl}}/v1/operations","host":["{{baseUrl}}"],"path":["v1","operations"],"query":[{"key":"name","value":"Clubfunding Demo Deal","disabled":true},{"key":"limit","value":"20","disabled":true},{"key":"offset","value":"0","disabled":true},{"key":"status","value":"active","disabled":true},{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","disabled":true}]},"description":"Supporte la recherche par nom exact insensible a la casse, la pagination, le filtrage par statut et le filtrage par SPV. Le filtre par nom est un controle avant creation, pas une garantie d'unicite concurrente; conservez l'identifiant MARKO et utilisez external_id avec Idempotency-Key."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-list"}],"url":{"raw":"{{baseUrl}}/v1/operations","host":["{{baseUrl}}"],"path":["v1","operations"],"query":[{"key":"name","value":"Clubfunding Demo Deal","disabled":true},{"key":"limit","value":"20","disabled":true},{"key":"offset","value":"0","disabled":true},{"key":"status","value":"active","disabled":true},{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","disabled":true}]},"description":"Supporte la recherche par nom exact insensible a la casse, la pagination, le filtrage par statut et le filtrage par SPV. Le filtre par nom est un controle avant creation, pas une garantie d'unicite concurrente; conservez l'identifiant MARKO et utilisez external_id avec Idempotency-Key."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n    \"relationship_status\": \"attached\",\n    \"relationship_label\": \"Rattachée\",\n    \"name\": \"Clubfunding Demo Deal\",\n    \"status\": \"instruction\",\n    \"phase\": \"p03_financement\",\n    \"type_investissement\": \"dette_senior\",\n    \"type_operation\": \"acquisition_detention\",\n    \"classe_actif\": \"residentiel\",\n    \"statut_interne\": \"analyse\",\n    \"statut_operationnel\": [\n      \"commercialisation\"\n    ],\n    \"sous_classe_actif\": \"residentiel_coliving\",\n    \"version\": 3,\n    \"created_at\": \"2026-03-10T08:00:00Z\",\n    \"updated_at\": \"2026-03-21T14:30:00Z\",\n    \"financial_summary\": {\n      \"montant_nominal_contractuel\": 2500000,\n      \"montant_total\": 2500000\n    },\n    \"reporting_summary\": {\n      \"mode_reporting\": \"trimestriel\",\n      \"frequence_reporting\": 3,\n      \"reporting_status\": \"pending\",\n      \"taux_completude_reporting\": 68.5\n    }\n  }\n]"}]},{"name":"GET operations.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne le detail d'une operation par son identifiant MARKO."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne le detail d'une operation par son identifiant MARKO."},"status":"OK","code":200,"body":"{\n  \"id\": \"44444444-4444-4444-4444-444444444444\",\n  \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n  \"relationship_status\": \"attached\",\n  \"relationship_label\": \"Rattachée\",\n  \"name\": \"Clubfunding Demo Deal\",\n  \"status\": \"instruction\",\n  \"phase\": \"p03_financement\",\n  \"type_investissement\": \"dette_senior\",\n  \"type_operation\": \"acquisition_detention\",\n  \"classe_actif\": \"residentiel\",\n  \"statut_interne\": \"analyse\",\n  \"statut_operationnel\": [\n    \"commercialisation\"\n  ],\n  \"sous_classe_actif\": \"residentiel_coliving\",\n  \"version\": 3,\n  \"created_at\": \"2026-03-10T08:00:00Z\",\n  \"updated_at\": \"2026-03-21T14:30:00Z\",\n  \"financial_summary\": {\n    \"montant_nominal_contractuel\": 2500000,\n    \"montant_total\": 2500000\n  },\n  \"reporting_summary\": {\n    \"mode_reporting\": \"trimestriel\",\n    \"frequence_reporting\": 3,\n    \"reporting_status\": \"pending\",\n    \"taux_completude_reporting\": 68.5\n  }\n}"}]},{"name":"GET operations.external.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OP-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du système partenaire et retourne immédiatement l'identifiant MARKO et la ressource courante. Les codes `custom__...` sont générés par MARKO : conservez toujours le code renvoyé au lieu de le construire."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OP-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du système partenaire et retourne immédiatement l'identifiant MARKO et la ressource courante. Les codes `custom__...` sont générés par MARKO : conservez toujours le code renvoyé au lieu de le construire."},"status":"OK","code":200,"body":"{\n  \"id\": \"44444444-4444-4444-4444-444444444444\",\n  \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n  \"name\": \"ClubFunding Demo Deal\",\n  \"status\": \"custom__a3e08c7bde__projet_emis\",\n  \"data\": {},\n  \"created_at\": \"2026-08-22T08:00:00Z\",\n  \"updated_at\": \"2026-08-22T08:00:00Z\"\n}"}]},{"name":"GET taxonomies.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-taxonomies-list"}],"url":{"raw":"{{baseUrl}}/v1/taxonomies","host":["{{baseUrl}}"],"path":["v1","taxonomies"],"query":[{"key":"dimension","value":"operation_status"}]},"description":"Retourne les options visibles décidées par l'administrateur de l'entité. Une option courante masquée peut être demandée avec current_code afin de rester affichable sans être proposée pour une nouvelle sélection."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-taxonomies-list"}],"url":{"raw":"{{baseUrl}}/v1/taxonomies","host":["{{baseUrl}}"],"path":["v1","taxonomies"],"query":[{"key":"dimension","value":"operation_status"}]},"description":"Retourne les options visibles décidées par l'administrateur de l'entité. Une option courante masquée peut être demandée avec current_code afin de rester affichable sans être proposée pour une nouvelle sélection."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"code\": \"instruction\",\n      \"dimension\": \"operation_status\",\n      \"display_label\": \"Instruction\",\n      \"source_kind\": \"marko\",\n      \"source_display_name\": \"MARKO\",\n      \"is_visible\": true,\n      \"is_active\": true,\n      \"position\": 1,\n      \"usage_count\": 0,\n      \"label_editable\": false,\n      \"canonical_code\": \"instruction\"\n    }\n  ]\n}"}]},{"name":"GET operations.taxonomy","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-taxonomy"}],"url":{"raw":"{{baseUrl}}/v1/operations/taxonomy","host":["{{baseUrl}}"],"path":["v1","operations","taxonomy"],"query":[]},"description":"Endpoint legacy: retourne uniquement le socle canonique MARKO historique. Les écritures acceptent aussi les valeurs propres à l'entité. Utilisez `GET /v1/taxonomies?dimension=...` pour la liste visible et autoritative, y compris les options ClubFunding."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-taxonomy"}],"url":{"raw":"{{baseUrl}}/v1/operations/taxonomy","host":["{{baseUrl}}"],"path":["v1","operations","taxonomy"],"query":[]},"description":"Endpoint legacy: retourne uniquement le socle canonique MARKO historique. Les écritures acceptent aussi les valeurs propres à l'entité. Utilisez `GET /v1/taxonomies?dimension=...` pour la liste visible et autoritative, y compris les options ClubFunding."},"status":"OK","code":200,"body":"{\n  \"default_status\": \"sourcing\",\n  \"statuses\": [\n    {\n      \"code\": \"sourcing\",\n      \"label\": \"Analyse initiale\"\n    },\n    {\n      \"code\": \"instruction\",\n      \"label\": \"Instruction\"\n    },\n    {\n      \"code\": \"travaux\",\n      \"label\": \"Travaux\"\n    },\n    {\n      \"code\": \"commercialisation\",\n      \"label\": \"Commercialisation\"\n    },\n    {\n      \"code\": \"livraison\",\n      \"label\": \"Livraison\"\n    },\n    {\n      \"code\": \"cloture\",\n      \"label\": \"Clôture\"\n    },\n    {\n      \"code\": \"perte\",\n      \"label\": \"Perdue\"\n    }\n  ],\n  \"statuts_internes\": [\n    {\n      \"code\": \"due_diligence\",\n      \"label\": \"Due diligence\"\n    },\n    {\n      \"code\": \"en_cours\",\n      \"label\": \"En cours\"\n    },\n    {\n      \"code\": \"en_recouvrement\",\n      \"label\": \"En recouvrement\"\n    },\n    {\n      \"code\": \"analyse\",\n      \"label\": \"Analyse\"\n    },\n    {\n      \"code\": \"comite\",\n      \"label\": \"Comité\"\n    },\n    {\n      \"code\": \"closing\",\n      \"label\": \"Closing\"\n    },\n    {\n      \"code\": \"sain\",\n      \"label\": \"Sain\"\n    },\n    {\n      \"code\": \"avenant\",\n      \"label\": \"Avenant\"\n    },\n    {\n      \"code\": \"pre_contentieux\",\n      \"label\": \"Précontentieux\"\n    },\n    {\n      \"code\": \"contentieux_judiciaire\",\n      \"label\": \"Contentieux judiciaire\"\n    },\n    {\n      \"code\": \"lj\",\n      \"label\": \"LJ\"\n    },\n    {\n      \"code\": \"rj_sauvegarde\",\n      \"label\": \"RJ ou sauvegarde\"\n    },\n    {\n      \"code\": \"procedure_preventive\",\n      \"label\": \"Procédure préventive\"\n    },\n    {\n      \"code\": \"protocole_transactionnel\",\n      \"label\": \"Protocole transactionnel\"\n    },\n    {\n      \"code\": \"pre_contentieux_recouvrement\",\n      \"label\": \"Précontentieux\"\n    },\n    {\n      \"code\": \"remboursement_partiel\",\n      \"label\": \"Sortie partielle\"\n    },\n    {\n      \"code\": \"recouvrement_partiel\",\n      \"label\": \"Recouvrement partiel\"\n    },\n    {\n      \"code\": \"termine\",\n      \"label\": \"Terminé\"\n    }\n  ],\n  \"statuts_operationnels\": [\n    {\n      \"code\": \"montage_et_faisabilite\",\n      \"label\": \"Montage et faisabilité\"\n    },\n    {\n      \"code\": \"offre_foncier\",\n      \"label\": \"Offre - Foncier\"\n    },\n    {\n      \"code\": \"promesse_unilaterale_de_vente\",\n      \"label\": \"Promesse unilatérale de vente\"\n    },\n    {\n      \"code\": \"acquisition_du_foncier\",\n      \"label\": \"Acquisition du foncier\"\n    },\n    {\n      \"code\": \"evictions\",\n      \"label\": \"Évictions\"\n    },\n    {\n      \"code\": \"depot_de_la_dp\",\n      \"label\": \"Dépôt de la DP\"\n    },\n    {\n      \"code\": \"dp_purge\",\n      \"label\": \"DP purgé\"\n    },\n    {\n      \"code\": \"depot_du_pc\",\n      \"label\": \"Dépôt du PC\"\n    },\n    {\n      \"code\": \"pc_purge\",\n      \"label\": \"PC purgé\"\n    },\n    {\n      \"code\": \"depot_du_pcm\",\n      \"label\": \"Dépôt du PCM\"\n    },\n    {\n      \"code\": \"pcm_purge\",\n      \"label\": \"PCM purgé\"\n    },\n    {\n      \"code\": \"gfa\",\n      \"label\": \"GFA\"\n    },\n    {\n      \"code\": \"travaux\",\n      \"label\": \"Travaux\"\n    },\n    {\n      \"code\": \"commercialisation\",\n      \"label\": \"Commercialisation\"\n    },\n    {\n      \"code\": \"commercialisation_locative\",\n      \"label\": \"Commercialisation locative\"\n    },\n    {\n      \"code\": \"achevement_dat\",\n      \"label\": \"Achèvement (DAT)\"\n    },\n    {\n      \"code\": \"livraison\",\n      \"label\": \"Livraison / Cession d'actif\"\n    },\n    {\n      \"code\": \"leve_des_reserves\",\n      \"label\": \"Levée des réserves\"\n    },\n    {\n      \"code\": \"suivi_du_sav\",\n      \"label\": \"Suivi du SAV\"\n    },\n    {\n      \"code\": \"decennale\",\n      \"label\": \"Décennale\"\n    }\n  ]\n}"}]},{"name":"PUT operations.upsert","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OP-001","description":"Sample value for the external_id path parameter."}]},"description":"Crée ou met à jour immédiatement une opération à partir d'un identifiant partenaire stable. La réponse contient directement marko_id. Une valeur de taxonomie inconnue est créée pour l'entité, visible immédiatement et signalée dans taxonomy_additions. Le segment généré des codes `custom__...` n'est pas prévisible : le client doit conserver le code renvoyé et le réutiliser. Une création répond 201; une mise à jour, restauration ou répétition sans changement répond 200. Les notes utilisent leur endpoint dédié; seul POST /operations/batch reste asynchrone.\n\nPostman generates `idempotencyKey_operations_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Demo Deal\",\n  \"status\": \"Projet émis\",\n  \"type_investissement\": \"dette_senior\",\n  \"type_operation\": \"acquisition_detention\",\n  \"classe_actif\": \"residentiel\",\n  \"statut_interne\": \"analyse\",\n  \"statut_operationnel\": [\n    \"commercialisation\"\n  ],\n  \"sous_classe_actif\": \"residentiel_coliving\",\n  \"data\": {\n    \"adresse\": \"12 rue de la Paix, Paris\"\n  },\n  \"kpi_snapshot\": {\n    \"date_reference\": \"2026-07-15\",\n    \"crd_total\": 2500000,\n    \"valeur_venale\": 3400000,\n    \"ltv\": 0.7353\n  }\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OP-001","description":"Sample value for the external_id path parameter."}]},"description":"Crée ou met à jour immédiatement une opération à partir d'un identifiant partenaire stable. La réponse contient directement marko_id. Une valeur de taxonomie inconnue est créée pour l'entité, visible immédiatement et signalée dans taxonomy_additions. Le segment généré des codes `custom__...` n'est pas prévisible : le client doit conserver le code renvoyé et le réutiliser. Une création répond 201; une mise à jour, restauration ou répétition sans changement répond 200. Les notes utilisent leur endpoint dédié; seul POST /operations/batch reste asynchrone.\n\nPostman generates `idempotencyKey_operations_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Demo Deal\",\n  \"status\": \"Projet émis\",\n  \"type_investissement\": \"dette_senior\",\n  \"type_operation\": \"acquisition_detention\",\n  \"classe_actif\": \"residentiel\",\n  \"statut_interne\": \"analyse\",\n  \"statut_operationnel\": [\n    \"commercialisation\"\n  ],\n  \"sous_classe_actif\": \"residentiel_coliving\",\n  \"data\": {\n    \"adresse\": \"12 rue de la Paix, Paris\"\n  },\n  \"kpi_snapshot\": {\n    \"date_reference\": \"2026-07-15\",\n    \"crd_total\": 2500000,\n    \"valeur_venale\": 3400000,\n    \"ltv\": 0.7353\n  }\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"external_id\": \"CF-OP-001\",\n  \"marko_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"outcome\": \"created\",\n  \"resource\": {\n    \"id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": null,\n    \"lead_operateur_id\": null,\n    \"name\": \"Clubfunding Demo Deal\",\n    \"status\": \"custom__a3e08c7bde__projet_emis\",\n    \"type_investissement\": \"dette_senior\",\n    \"type_operation\": \"acquisition_detention\",\n    \"classe_actif\": \"residentiel\",\n    \"statut_interne\": \"analyse\",\n    \"statut_operationnel\": [\n      \"commercialisation\"\n    ],\n    \"sous_classe_actif\": \"residentiel_coliving\",\n    \"data\": {\n      \"adresse\": \"12 rue de la Paix, Paris\"\n    },\n    \"created_at\": \"2026-08-22T08:00:00Z\",\n    \"updated_at\": \"2026-08-22T08:00:00Z\"\n  },\n  \"taxonomy_additions\": [\n    {\n      \"code\": \"custom__a3e08c7bde__projet_emis\",\n      \"dimension\": \"operation_status\",\n      \"display_label\": \"Projet émis\",\n      \"source_kind\": \"partner\",\n      \"source_display_name\": \"ClubFunding\",\n      \"is_visible\": true,\n      \"is_active\": true,\n      \"position\": 10000,\n      \"usage_count\": 0,\n      \"label_editable\": true,\n      \"canonical_code\": null\n    }\n  ],\n  \"request_id\": \"req_cf_operation_upsert\"\n}"},{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-upsert"},{"key":"Idempotency-Key","value":"marko-operations-upsert-200-{{$guid}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OP-001","description":"Sample value for the external_id path parameter."}]},"description":"Crée ou met à jour immédiatement une opération à partir d'un identifiant partenaire stable. La réponse contient directement marko_id. Une valeur de taxonomie inconnue est créée pour l'entité, visible immédiatement et signalée dans taxonomy_additions. Le segment généré des codes `custom__...` n'est pas prévisible : le client doit conserver le code renvoyé et le réutiliser. Une création répond 201; une mise à jour, restauration ou répétition sans changement répond 200. Les notes utilisent leur endpoint dédié; seul POST /operations/batch reste asynchrone.\n\nPostman generates `idempotencyKey_operations_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Demo Deal - Mise à jour\",\n  \"status\": \"custom__a3e08c7bde__projet_emis\",\n  \"type_investissement\": \"dette_senior\",\n  \"type_operation\": \"acquisition_detention\",\n  \"classe_actif\": \"residentiel\",\n  \"statut_interne\": \"analyse\",\n  \"statut_operationnel\": [\n    \"commercialisation\"\n  ],\n  \"sous_classe_actif\": \"residentiel_coliving\",\n  \"data\": {\n    \"adresse\": \"14 rue de la Paix, Paris\"\n  },\n  \"kpi_snapshot\": {\n    \"date_reference\": \"2026-07-31\",\n    \"crd_total\": 2400000,\n    \"valeur_venale\": 3500000,\n    \"ltv\": 0.6857\n  }\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"external_id\": \"CF-OP-001\",\n  \"marko_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"outcome\": \"updated\",\n  \"resource\": {\n    \"id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": null,\n    \"lead_operateur_id\": null,\n    \"name\": \"Clubfunding Demo Deal - Mise à jour\",\n    \"status\": \"custom__a3e08c7bde__projet_emis\",\n    \"type_investissement\": \"dette_senior\",\n    \"type_operation\": \"acquisition_detention\",\n    \"classe_actif\": \"residentiel\",\n    \"statut_interne\": \"analyse\",\n    \"statut_operationnel\": [\n      \"commercialisation\"\n    ],\n    \"sous_classe_actif\": \"residentiel_coliving\",\n    \"data\": {\n      \"adresse\": \"14 rue de la Paix, Paris\"\n    },\n    \"created_at\": \"2026-08-22T08:00:00Z\",\n    \"updated_at\": \"2026-08-22T09:30:00Z\"\n  },\n  \"taxonomy_additions\": [],\n  \"request_id\": \"req_cf_operation_update\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operations_upsert';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST operations.batch","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-batch"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_batch}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/batch","host":["{{baseUrl}}"],"path":["v1","operations","batch"],"query":[]},"description":"Accepte jusqu'à 500 opérations, 10 000 notes et 20 Mio par requête. Le job est durable et chaque élément possède son propre résultat. `category` dans les notes est une chaine libre de 1 a 80 caracteres.\n\nPostman generates `idempotencyKey_operations_batch` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operations\": [\n    {\n      \"external_id\": \"CF-OP-001\",\n      \"name\": \"Clubfunding Demo Deal\",\n      \"status\": \"instruction\",\n      \"data\": {\n        \"adresse\": \"12 rue de la Paix, Paris\"\n      },\n      \"kpi_snapshot\": {\n        \"date_reference\": \"2026-07-15\",\n        \"crd_total\": 2500000\n      },\n      \"notes\": [\n        {\n          \"external_id\": \"CF-NOTE-001\",\n          \"date\": \"2026-07-15T09:30:00Z\",\n          \"text\": \"Pièces complémentaires attendues.\",\n          \"category\": \"call\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 202","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-batch"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_batch}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/batch","host":["{{baseUrl}}"],"path":["v1","operations","batch"],"query":[]},"description":"Accepte jusqu'à 500 opérations, 10 000 notes et 20 Mio par requête. Le job est durable et chaque élément possède son propre résultat. `category` dans les notes est une chaine libre de 1 a 80 caracteres.\n\nPostman generates `idempotencyKey_operations_batch` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operations\": [\n    {\n      \"external_id\": \"CF-OP-001\",\n      \"name\": \"Clubfunding Demo Deal\",\n      \"status\": \"instruction\",\n      \"data\": {\n        \"adresse\": \"12 rue de la Paix, Paris\"\n      },\n      \"kpi_snapshot\": {\n        \"date_reference\": \"2026-07-15\",\n        \"crd_total\": 2500000\n      },\n      \"notes\": [\n        {\n          \"external_id\": \"CF-NOTE-001\",\n          \"date\": \"2026-07-15T09:30:00Z\",\n          \"text\": \"Pièces complémentaires attendues.\",\n          \"category\": \"call\"\n        }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":202,"body":"{\n  \"job_id\": \"88888888-8888-8888-8888-888888888888\",\n  \"status\": \"accepted\",\n  \"status_url\": \"/v1/import-jobs/88888888-8888-8888-8888-888888888888\",\n  \"results_url\": \"/v1/import-jobs/88888888-8888-8888-8888-888888888888/items\",\n  \"received_counts\": {\n    \"operations\": 1,\n    \"notes\": 1\n  },\n  \"idempotency_key\": \"client-nightly-2026-07-15-001\",\n  \"replayed\": false\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operations_batch';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET operations.notes.external.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-notes-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:operation_external_id/notes/external/:note_external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":operation_external_id","notes","external",":note_external_id"],"query":[],"variable":[{"key":"operation_external_id","value":"CF-OP-001","description":"Sample value for the operation_external_id path parameter."},{"key":"note_external_id","value":"CF-NOTE-002","description":"Sample value for the note_external_id path parameter."}]},"description":"Retourne la note uniquement si elle appartient à l'opération externe indiquée."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-notes-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:operation_external_id/notes/external/:note_external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":operation_external_id","notes","external",":note_external_id"],"query":[],"variable":[{"key":"operation_external_id","value":"CF-OP-001","description":"Sample value for the operation_external_id path parameter."},{"key":"note_external_id","value":"CF-NOTE-002","description":"Sample value for the note_external_id path parameter."}]},"description":"Retourne la note uniquement si elle appartient à l'opération externe indiquée."},"status":"OK","code":200,"body":"{\n  \"id\": \"55555555-5555-5555-5555-555555555555\",\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"date\": \"2026-08-22T08:00:00Z\",\n  \"category\": \"custom__a3e08c7bde__comite\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"description_i18n\": {},\n  \"created_at\": \"2026-08-22T08:00:00Z\",\n  \"updated_at\": \"2026-08-22T08:00:00Z\"\n}"}]},{"name":"PUT operations.notes.upsert","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-notes-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_notes_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:operation_external_id/notes/external/:note_external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":operation_external_id","notes","external",":note_external_id"],"query":[],"variable":[{"key":"operation_external_id","value":"CF-OP-001","description":"Sample value for the operation_external_id path parameter."},{"key":"note_external_id","value":"CF-NOTE-002","description":"Sample value for the note_external_id path parameter."}]},"description":"Crée ou met à jour immédiatement une note historique datée sur une opération référencée par son identifiant externe. La réponse contient directement son marko_id. Une catégorie inconnue devient une option d'entité visible, avec la source partenaire. Une mise à jour versionnée doit porter un source_updated_at strictement plus récent lorsque la note en possède déjà un.\n\nPostman generates `idempotencyKey_operations_notes_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T14:00:00Z\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"category\": \"comite\",\n  \"description_i18n\": {\n    \"fr\": \"Comité : prorogation à documenter.\",\n    \"en\": \"Committee: extension to document.\"\n  },\n  \"source_created_at\": \"2026-07-16T14:00:00Z\",\n  \"source_updated_at\": \"2026-07-16T14:00:00Z\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-notes-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_notes_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/external/:operation_external_id/notes/external/:note_external_id","host":["{{baseUrl}}"],"path":["v1","operations","external",":operation_external_id","notes","external",":note_external_id"],"query":[],"variable":[{"key":"operation_external_id","value":"CF-OP-001","description":"Sample value for the operation_external_id path parameter."},{"key":"note_external_id","value":"CF-NOTE-002","description":"Sample value for the note_external_id path parameter."}]},"description":"Crée ou met à jour immédiatement une note historique datée sur une opération référencée par son identifiant externe. La réponse contient directement son marko_id. Une catégorie inconnue devient une option d'entité visible, avec la source partenaire. Une mise à jour versionnée doit porter un source_updated_at strictement plus récent lorsque la note en possède déjà un.\n\nPostman generates `idempotencyKey_operations_notes_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T14:00:00Z\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"category\": \"comite\",\n  \"description_i18n\": {\n    \"fr\": \"Comité : prorogation à documenter.\",\n    \"en\": \"Committee: extension to document.\"\n  },\n  \"source_created_at\": \"2026-07-16T14:00:00Z\",\n  \"source_updated_at\": \"2026-07-16T14:00:00Z\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"external_id\": \"CF-NOTE-002\",\n  \"marko_id\": \"55555555-5555-5555-5555-555555555555\",\n  \"outcome\": \"created\",\n  \"resource\": {\n    \"id\": \"55555555-5555-5555-5555-555555555555\",\n    \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n    \"date\": \"2026-07-16T14:00:00Z\",\n    \"category\": \"custom__a3e08c7bde__comite\",\n    \"text\": \"Comité: prorogation à documenter.\",\n    \"description_i18n\": {\n      \"fr\": \"Comité : prorogation à documenter.\",\n      \"en\": \"Committee: extension to document.\"\n    },\n    \"source_created_at\": \"2026-07-16T14:00:00Z\",\n    \"source_updated_at\": \"2026-07-16T14:00:00Z\",\n    \"created_at\": \"2026-08-22T08:00:00Z\",\n    \"updated_at\": \"2026-08-22T08:00:00Z\"\n  },\n  \"taxonomy_additions\": [\n    {\n      \"code\": \"custom__a3e08c7bde__comite\",\n      \"dimension\": \"follow_up_category\",\n      \"display_label\": \"comite\",\n      \"source_kind\": \"partner\",\n      \"source_display_name\": \"ClubFunding\",\n      \"is_visible\": true,\n      \"is_active\": true,\n      \"position\": 10000,\n      \"usage_count\": 0,\n      \"label_editable\": true,\n      \"canonical_code\": null\n    }\n  ],\n  \"request_id\": \"req_cf_note_upsert\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operations_notes_upsert';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET import-jobs.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-get"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Retourne les compteurs completed, noop, failed et conflict du job durable. Pour un import d'une operation, `operation_id` est renseigne des que la cible MARKO existe; sinon `error_code` et `error_message` decrivent l'echec."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-get"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Retourne les compteurs completed, noop, failed et conflict du job durable. Pour un import d'une operation, `operation_id` est renseigne des que la cible MARKO existe; sinon `error_code` et `error_message` decrivent l'echec."},"status":"OK","code":200,"body":"{\n  \"job_id\": \"88888888-8888-8888-8888-888888888888\",\n  \"status\": \"partial\",\n  \"total_operations\": 500,\n  \"total_notes\": 5000,\n  \"processed_items\": 5500,\n  \"completed_items\": 5497,\n  \"noop_items\": 1,\n  \"failed_items\": 1,\n  \"conflict_items\": 1,\n  \"cancel_requested\": false,\n  \"accepted_at\": \"2026-07-16T08:00:00Z\",\n  \"started_at\": \"2026-07-16T08:00:01Z\",\n  \"completed_at\": \"2026-07-16T08:04:20Z\",\n  \"created_at\": \"2026-07-16T08:00:00Z\",\n  \"updated_at\": \"2026-07-16T08:04:20Z\",\n  \"results_url\": \"/v1/import-jobs/88888888-8888-8888-8888-888888888888/items\",\n  \"operation_id\": null,\n  \"error_code\": null,\n  \"error_message\": null\n}"}]},{"name":"GET import-jobs.items","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-items"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/items","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","items"],"query":[{"key":"status","value":"failed"},{"key":"limit","value":"100"},{"key":"offset","value":"0"}],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Filtre les résultats par `status` ou `item_kind` pour diagnostiquer et reprendre un lot."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-items"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/items","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","items"],"query":[{"key":"status","value":"failed"},{"key":"limit","value":"100"},{"key":"offset","value":"0"}],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Filtre les résultats par `status` ou `item_kind` pour diagnostiquer et reprendre un lot."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"aaaaaaaa-8888-8888-8888-888888888888\",\n      \"item_kind\": \"operation\",\n      \"position\": 42,\n      \"external_id\": \"CF-OP-042\",\n      \"status\": \"failed\",\n      \"attempts\": 1,\n      \"error_code\": \"marko_http_422\",\n      \"error_message\": \"Imported item failed MARKO validation\"\n    }\n  ],\n  \"total\": 1,\n  \"limit\": 100,\n  \"offset\": 0\n}"}]},{"name":"POST import-jobs.retry","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-retry"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/retry","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","retry"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Réenfile un job failed ou partial; les éléments déjà terminés restent des no-op."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-retry"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/retry","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","retry"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Réenfile un job failed ou partial; les éléments déjà terminés restent des no-op."},"status":"OK","code":200,"body":"{\n  \"job_id\": \"88888888-8888-8888-8888-888888888888\",\n  \"status\": \"queued\",\n  \"total_operations\": 500,\n  \"total_notes\": 5000,\n  \"processed_items\": 0,\n  \"completed_items\": 0,\n  \"noop_items\": 0,\n  \"failed_items\": 0,\n  \"conflict_items\": 0,\n  \"cancel_requested\": false,\n  \"created_at\": \"2026-07-16T08:00:00Z\",\n  \"updated_at\": \"2026-07-16T08:05:00Z\",\n  \"results_url\": \"/v1/import-jobs/88888888-8888-8888-8888-888888888888/items\"\n}"}]},{"name":"POST import-jobs.cancel","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-cancel"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/cancel","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","cancel"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Demande un arrêt propre au prochain point de reprise durable."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-import-jobs-cancel"}],"url":{"raw":"{{baseUrl}}/v1/import-jobs/:job_id/cancel","host":["{{baseUrl}}"],"path":["v1","import-jobs",":job_id","cancel"],"query":[],"variable":[{"key":"job_id","value":"88888888-8888-8888-8888-888888888888","description":"Sample value for the job_id path parameter."}]},"description":"Demande un arrêt propre au prochain point de reprise durable."},"status":"OK","code":200,"body":"{\n  \"job_id\": \"88888888-8888-8888-8888-888888888888\",\n  \"status\": \"running\",\n  \"total_operations\": 500,\n  \"total_notes\": 5000,\n  \"processed_items\": 100,\n  \"completed_items\": 100,\n  \"noop_items\": 0,\n  \"failed_items\": 0,\n  \"conflict_items\": 0,\n  \"cancel_requested\": true,\n  \"created_at\": \"2026-07-16T08:00:00Z\",\n  \"updated_at\": \"2026-07-16T08:06:00Z\",\n  \"results_url\": \"/v1/import-jobs/88888888-8888-8888-8888-888888888888/items\"\n}"}]},{"name":"GET operations.comments.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-comments-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/comments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","comments"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"category","value":"call"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne les notes triées par date métier avec texte et catégorie libre."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-comments-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/comments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","comments"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"category","value":"call"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne les notes triées par date métier avec texte et catégorie libre."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n      \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n      \"user_id\": \"external-api:client\",\n      \"author_name\": \"API externe\",\n      \"content\": \"Pièces complémentaires attendues.\",\n      \"note_type\": \"call\",\n      \"date\": \"2026-07-15T09:30:00Z\",\n      \"text\": \"Pièces complémentaires attendues.\",\n      \"category\": \"call\",\n      \"is_resolved\": false,\n      \"created_at\": \"2026-07-16T08:00:00Z\",\n      \"updated_at\": \"2026-07-16T08:00:00Z\"\n    }\n  ],\n  \"total\": 1,\n  \"limit\": 20,\n  \"offset\": 0\n}"}]},{"name":"POST operations.comments.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-comments-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_comments_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/comments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","comments"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Crée une note sans identifiant externe; pour un import idempotent, utilisez la route notes/external. `category` est une chaine libre de 1 a 80 caracteres; valeurs conseillees: call, comite, juridique ou libre.\n\nPostman generates `idempotencyKey_operations_comments_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T14:00:00Z\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"category\": \"comite\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-comments-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_comments_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/comments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","comments"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Crée une note sans identifiant externe; pour un import idempotent, utilisez la route notes/external. `category` est une chaine libre de 1 a 80 caracteres; valeurs conseillees: call, comite, juridique ou libre.\n\nPostman generates `idempotencyKey_operations_comments_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T14:00:00Z\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"category\": \"comite\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb\",\n  \"date\": \"2026-07-16T14:00:00Z\",\n  \"text\": \"Comité: prorogation à documenter.\",\n  \"category\": \"comite\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operations_comments_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT comments.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-comments-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/comments/:comment_id","host":["{{baseUrl}}"],"path":["v1","comments",":comment_id"],"query":[],"variable":[{"key":"comment_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the comment_id path parameter."}]},"description":"Modifie la date métier, le texte ou la catégorie d'une note MARKO.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T15:00:00Z\",\n  \"text\": \"Prorogation validée, avenant attendu.\",\n  \"category\": \"juridique\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-comments-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/comments/:comment_id","host":["{{baseUrl}}"],"path":["v1","comments",":comment_id"],"query":[],"variable":[{"key":"comment_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the comment_id path parameter."}]},"description":"Modifie la date métier, le texte ou la catégorie d'une note MARKO.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-07-16T15:00:00Z\",\n  \"text\": \"Prorogation validée, avenant attendu.\",\n  \"category\": \"juridique\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa\",\n  \"date\": \"2026-07-16T15:00:00Z\",\n  \"text\": \"Prorogation validée, avenant attendu.\",\n  \"category\": \"juridique\"\n}"}]},{"name":"DELETE comments.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-comments-delete"}],"url":{"raw":"{{baseUrl}}/v1/comments/:comment_id","host":["{{baseUrl}}"],"path":["v1","comments",":comment_id"],"query":[],"variable":[{"key":"comment_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the comment_id path parameter."}]},"description":"Supprime la note; l'événement de suppression reste dans la chronologie."},"response":[]},{"name":"GET operations.chronicle","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-chronicle"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/chronicle","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","chronicle"],"query":[{"key":"page","value":"1"},{"key":"limit","value":"50"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Historique paginé des transitions, changements de champs et événements d'audit."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-chronicle"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/chronicle","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","chronicle"],"query":[{"key":"page","value":"1"},{"key":"limit","value":"50"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Historique paginé des transitions, changements de champs et événements d'audit."},"status":"OK","code":200,"body":"{\n  \"items\": [],\n  \"total\": 0,\n  \"page\": 1,\n  \"pages\": 0,\n  \"limit\": 50\n}"}]},{"name":"GET operations.chronicle.narrative","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-chronicle-narrative"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/chronicle/narrative","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","chronicle","narrative"],"query":[{"key":"category","value":"comment"},{"key":"page","value":"1"},{"key":"limit","value":"50"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Agrège notamment les notes de suivi. Pour une note importée, metadata expose note_date, note_text et note_category."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-chronicle-narrative"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/chronicle/narrative","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","chronicle","narrative"],"query":[{"key":"category","value":"comment"},{"key":"page","value":"1"},{"key":"limit","value":"50"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Agrège notamment les notes de suivi. Pour une note importée, metadata expose note_date, note_text et note_category."},"status":"OK","code":200,"body":"{\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"entries\": [\n    {\n      \"id\": \"cm_aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n      \"timestamp\": \"2026-07-15T09:30:00Z\",\n      \"category\": \"comment\",\n      \"title\": \"Note d'appel ajoutée via l'API externe\",\n      \"description\": \"Pièces complémentaires attendues.\",\n      \"severity\": \"info\",\n      \"metadata\": {\n        \"note_date\": \"2026-07-15T09:30:00Z\",\n        \"note_text\": \"Pièces complémentaires attendues.\",\n        \"note_category\": \"call\"\n      }\n    }\n  ],\n  \"total\": 1,\n  \"page\": 1,\n  \"pages\": 1,\n  \"limit\": 50,\n  \"sources_queried\": [\n    \"comments\"\n  ]\n}"}]},{"name":"DELETE operations.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-delete"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id"],"query":[],"variable":[{"key":"operation_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operation_id path parameter."}]},"description":"Supprime logiquement une opération existante."},"response":[]},{"name":"GET documents.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-list"}],"url":{"raw":"{{baseUrl}}/v1/documents","host":["{{baseUrl}}"],"path":["v1","documents"],"query":[{"key":"operation_external_id","value":"CF-OP-001"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Peut filtrer sur une operation MARKO ou une `operation_external_id`."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-list"}],"url":{"raw":"{{baseUrl}}/v1/documents","host":["{{baseUrl}}"],"path":["v1","documents"],"query":[{"key":"operation_external_id","value":"CF-OP-001"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Peut filtrer sur une operation MARKO ou une `operation_external_id`."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"55555555-5555-5555-5555-555555555555\",\n    \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n    \"fond_id\": null,\n    \"type\": \"term_sheet\",\n    \"filename\": \"term-sheet.pdf\",\n    \"state\": \"active\",\n    \"version\": 1,\n    \"storage_path\": \"https://partner-api.marko.fr/api/documents/download/clubfunding/55555555-5555-5555-5555-555555555555?exp=1760000000&sig=abc123\",\n    \"partner_metadata\": {\n      \"langue\": \"fr\"\n    },\n    \"created_at\": \"2026-03-18T11:00:00Z\"\n  }\n]"}]},{"name":"GET documents.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-get"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id","host":["{{baseUrl}}"],"path":["v1","documents",":document_id"],"query":[],"variable":[{"key":"document_id","value":"55555555-5555-5555-5555-555555555555","description":"Sample value for the document_id path parameter."}]},"description":"Retourne le metadata d'un document et son URL de telechargement si disponible."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-get"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id","host":["{{baseUrl}}"],"path":["v1","documents",":document_id"],"query":[],"variable":[{"key":"document_id","value":"55555555-5555-5555-5555-555555555555","description":"Sample value for the document_id path parameter."}]},"description":"Retourne le metadata d'un document et son URL de telechargement si disponible."},"status":"OK","code":200,"body":"{\n  \"id\": \"55555555-5555-5555-5555-555555555555\",\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n  \"fond_id\": null,\n  \"type\": \"term_sheet\",\n  \"filename\": \"term-sheet.pdf\",\n  \"state\": \"active\",\n  \"version\": 1,\n  \"storage_path\": \"https://partner-api.marko.fr/api/documents/download/clubfunding/55555555-5555-5555-5555-555555555555?exp=1760000000&sig=abc123\",\n  \"partner_metadata\": {\n    \"langue\": \"fr\"\n  },\n  \"created_at\": \"2026-03-18T11:00:00Z\"\n}"}]},{"name":"PUT documents.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id","host":["{{baseUrl}}"],"path":["v1","documents",":document_id"],"query":[],"variable":[{"key":"document_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the document_id path parameter."}]},"description":"Met à jour les métadonnées d'un document existant.","body":{"mode":"raw","raw":"{\n  \"filename\": \"reporting-maj.pdf\",\n  \"type\": \"reporting\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id","host":["{{baseUrl}}"],"path":["v1","documents",":document_id"],"query":[],"variable":[{"key":"document_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the document_id path parameter."}]},"description":"Met à jour les métadonnées d'un document existant.","body":{"mode":"raw","raw":"{\n  \"filename\": \"reporting-maj.pdf\",\n  \"type\": \"reporting\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"filename\": \"reporting-maj.pdf\"\n}"}]},{"name":"POST documents.attach-operation","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-attach-operation"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_attach_operation}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id/attach-operation","host":["{{baseUrl}}"],"path":["v1","documents",":document_id","attach-operation"],"query":[],"variable":[{"key":"document_id","value":"55555555-5555-5555-5555-555555555555","description":"Sample value for the document_id path parameter."}]},"description":"Rattache atomiquement un document non affecté à une opération MARKO. Une relance avec la même clé d'idempotence rejoue la première réponse; une nouvelle intention échoue si le document est déjà rattaché.\n\nPostman generates `idempotencyKey_documents_attach_operation` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-attach-operation"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_attach_operation}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id/attach-operation","host":["{{baseUrl}}"],"path":["v1","documents",":document_id","attach-operation"],"query":[],"variable":[{"key":"document_id","value":"55555555-5555-5555-5555-555555555555","description":"Sample value for the document_id path parameter."}]},"description":"Rattache atomiquement un document non affecté à une opération MARKO. Une relance avec la même clé d'idempotence rejoue la première réponse; une nouvelle intention échoue si le document est déjà rattaché.\n\nPostman generates `idempotencyKey_documents_attach_operation` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"55555555-5555-5555-5555-555555555555\",\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"spv_id\": null,\n  \"fond_id\": null,\n  \"type\": \"term_sheet\",\n  \"filename\": \"term-sheet.pdf\",\n  \"state\": \"active\",\n  \"version\": 2,\n  \"storage_path\": null,\n  \"partner_metadata\": {\n    \"langue\": \"fr\"\n  },\n  \"created_at\": \"2026-03-18T11:00:00Z\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_documents_attach_operation';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"DELETE documents.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-delete"}],"url":{"raw":"{{baseUrl}}/v1/documents/:document_id","host":["{{baseUrl}}"],"path":["v1","documents",":document_id"],"query":[],"variable":[{"key":"document_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the document_id path parameter."}]},"description":"Supprime logiquement un document existant."},"response":[]},{"name":"PUT documents.create","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/external/:external_id","host":["{{baseUrl}}"],"path":["v1","documents","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-DOC-001","description":"Sample value for the external_id path parameter."}]},"description":"Route idempotente pour declarer un document avant upload physique.\n\nPostman generates `idempotencyKey_documents_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operation_external_id\": \"CF-OP-001\",\n  \"type\": \"term_sheet\",\n  \"filename\": \"term-sheet.pdf\",\n  \"partner_metadata\": {\n    \"langue\": \"fr\"\n  }\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/documents/external/:external_id","host":["{{baseUrl}}"],"path":["v1","documents","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-DOC-001","description":"Sample value for the external_id path parameter."}]},"description":"Route idempotente pour declarer un document avant upload physique.\n\nPostman generates `idempotencyKey_documents_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operation_external_id\": \"CF-OP-001\",\n  \"type\": \"term_sheet\",\n  \"filename\": \"term-sheet.pdf\",\n  \"partner_metadata\": {\n    \"langue\": \"fr\"\n  }\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"external_id\": \"CF-DOC-001\",\n  \"document_id\": \"55555555-5555-5555-5555-555555555555\",\n  \"created\": true,\n  \"document\": {\n    \"id\": \"55555555-5555-5555-5555-555555555555\",\n    \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n    \"fond_id\": null,\n    \"type\": \"term_sheet\",\n    \"filename\": \"term-sheet.pdf\",\n    \"state\": \"active\",\n    \"version\": 1,\n    \"storage_path\": null,\n    \"partner_metadata\": {\n      \"langue\": \"fr\"\n    },\n    \"created_at\": \"2026-03-26T09:10:00Z\"\n  }\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_documents_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT documents.upload","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-upload"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_upload}}"}],"url":{"raw":"{{baseUrl}}/v1/documents/external/:external_id/upload","host":["{{baseUrl}}"],"path":["v1","documents","external",":external_id","upload"],"query":[],"variable":[{"key":"external_id","value":"CF-DOC-001","description":"Sample value for the external_id path parameter."}]},"description":"Upload multipart/form-data idempotent avec rattachement a une operation via `operation_id` ou `operation_external_id`.\n\nPostman generates `idempotencyKey_documents_upload` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"formdata","formdata":[{"key":"type","value":"term_sheet","type":"text"},{"key":"operation_external_id","value":"CF-OP-001","type":"text"},{"key":"partner_metadata","value":"{\"langue\":\"fr\"}","type":"text"},{"key":"file","value":"./term-sheet.pdf","type":"file"}]}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-documents-upload"},{"key":"Idempotency-Key","value":"{{idempotencyKey_documents_upload}}"}],"url":{"raw":"{{baseUrl}}/v1/documents/external/:external_id/upload","host":["{{baseUrl}}"],"path":["v1","documents","external",":external_id","upload"],"query":[],"variable":[{"key":"external_id","value":"CF-DOC-001","description":"Sample value for the external_id path parameter."}]},"description":"Upload multipart/form-data idempotent avec rattachement a une operation via `operation_id` ou `operation_external_id`.\n\nPostman generates `idempotencyKey_documents_upload` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"formdata","formdata":[{"key":"type","value":"term_sheet","type":"text"},{"key":"operation_external_id","value":"CF-OP-001","type":"text"},{"key":"partner_metadata","value":"{\"langue\":\"fr\"}","type":"text"},{"key":"file","value":"./term-sheet.pdf","type":"file"}]}},"status":"OK","code":200,"body":"{\n  \"external_id\": \"CF-DOC-001\",\n  \"document_id\": \"55555555-5555-5555-5555-555555555555\",\n  \"created\": true,\n  \"document\": {\n    \"id\": \"55555555-5555-5555-5555-555555555555\",\n    \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n    \"spv_id\": \"33333333-3333-3333-3333-333333333333\",\n    \"fond_id\": null,\n    \"type\": \"term_sheet\",\n    \"filename\": \"term-sheet.pdf\",\n    \"state\": \"active\",\n    \"version\": 1,\n    \"storage_path\": \"https://partner-api.marko.fr/api/documents/download/clubfunding/55555555-5555-5555-5555-555555555555?exp=1760000000&sig=abc123\",\n    \"partner_metadata\": {\n      \"langue\": \"fr\"\n    },\n    \"created_at\": \"2026-03-26T09:12:00Z\"\n  }\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_documents_upload';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET users.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-list"}],"url":{"raw":"{{baseUrl}}/v1/users","host":["{{baseUrl}}"],"path":["v1","users"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les utilisateurs Better Auth rattachés à l'entité de la clé."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-list"}],"url":{"raw":"{{baseUrl}}/v1/users","host":["{{baseUrl}}"],"path":["v1","users"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les utilisateurs Better Auth rattachés à l'entité de la clé."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"usr_001\",\n      \"email\": \"ops@clubfunding.fr\",\n      \"name\": \"Ops Clubfunding\",\n      \"role\": \"entity_tech\",\n      \"status\": \"approved\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"POST users.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users","host":["{{baseUrl}}"],"path":["v1","users"],"query":[]},"description":"Crée un utilisateur d'entité et déclenche le flux d'activation Better Auth.\n\nPostman generates `idempotencyKey_users_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"email\": \"new.user@clubfunding.fr\",\n  \"name\": \"Nouveau User\",\n  \"role\": \"viewer\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users","host":["{{baseUrl}}"],"path":["v1","users"],"query":[]},"description":"Crée un utilisateur d'entité et déclenche le flux d'activation Better Auth.\n\nPostman generates `idempotencyKey_users_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"email\": \"new.user@clubfunding.fr\",\n  \"name\": \"Nouveau User\",\n  \"role\": \"viewer\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"usr_002\",\n  \"email\": \"new.user@clubfunding.fr\",\n  \"name\": \"Nouveau User\",\n  \"role\": \"viewer\",\n  \"status\": \"approved\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT users.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id","host":["{{baseUrl}}"],"path":["v1","users",":user_id"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Met à jour le rôle d'un utilisateur de l'entité.","body":{"mode":"raw","raw":"{\n  \"role\": \"entity_tech\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id","host":["{{baseUrl}}"],"path":["v1","users",":user_id"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Met à jour le rôle d'un utilisateur de l'entité.","body":{"mode":"raw","raw":"{\n  \"role\": \"entity_tech\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"usr_001\",\n  \"role\": \"entity_tech\",\n  \"status\": \"approved\"\n}"}]},{"name":"POST users.suspend","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-suspend"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/suspend","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","suspend"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Suspend un utilisateur activé de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-suspend"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/suspend","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","suspend"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Suspend un utilisateur activé de l'entité."},"status":"OK","code":200,"body":"{\n  \"id\": \"usr_001\",\n  \"status\": \"suspended\"\n}"}]},{"name":"POST users.unsuspend","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-unsuspend"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/unsuspend","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","unsuspend"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Réactive un utilisateur suspendu."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-unsuspend"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/unsuspend","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","unsuspend"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Réactive un utilisateur suspendu."},"status":"OK","code":200,"body":"{\n  \"id\": \"usr_001\",\n  \"status\": \"approved\"\n}"}]},{"name":"POST users.resend-invitation","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-resend-invitation"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_resend_invitation}}"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/resend-invitation","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","resend-invitation"],"query":[],"variable":[{"key":"user_id","value":"usr_002","description":"Sample value for the user_id path parameter."}]},"description":"Régénère le flux d'activation pour un utilisateur non activé.\n\nPostman generates `idempotencyKey_users_resend_invitation` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_resend_invitation';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST users.reset-password","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-reset-password"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_reset_password}}"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id/actions/reset-password","host":["{{baseUrl}}"],"path":["v1","users",":user_id","actions","reset-password"],"query":[],"variable":[{"key":"user_id","value":"usr_001","description":"Sample value for the user_id path parameter."}]},"description":"Déclenche le flux Better Auth de reset ou réactivation.\n\nPostman generates `idempotencyKey_users_reset_password` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_reset_password';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"DELETE users.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-delete"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_delete}}"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id","host":["{{baseUrl}}"],"path":["v1","users",":user_id"],"query":[],"variable":[{"key":"user_id","value":"usr_002","description":"Sample value for the user_id path parameter."}]},"description":"Annule immédiatement une invitation non activée ou retire les accès d'un compte actif et lance son workflow durable d'effacement RGPD.\n\nPostman generates `idempotencyKey_users_delete` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[{"name":"Sample 202","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-delete"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_delete}}"}],"url":{"raw":"{{baseUrl}}/v1/users/:user_id","host":["{{baseUrl}}"],"path":["v1","users",":user_id"],"query":[],"variable":[{"key":"user_id","value":"usr_002","description":"Sample value for the user_id path parameter."}]},"description":"Annule immédiatement une invitation non activée ou retire les accès d'un compte actif et lance son workflow durable d'effacement RGPD.\n\nPostman generates `idempotencyKey_users_delete` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"status":"OK","code":202,"body":"{\n  \"action\": \"offboarding_accepted\",\n  \"status\": \"in_progress\",\n  \"privacy_case_id\": \"00000000-0000-0000-0000-000000000001\",\n  \"replayed\": false,\n  \"manual_review_required\": false\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_delete';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET users.me.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-me-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me","host":["{{baseUrl}}"],"path":["v1","users","me"],"query":[]},"description":"Nécessite exactement un header `X-Marko-Delegated-User-Id` ou `X-Marko-Delegated-User-Email` pour résoudre le sujet utilisateur dans la même entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-me-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me","host":["{{baseUrl}}"],"path":["v1","users","me"],"query":[]},"description":"Nécessite exactement un header `X-Marko-Delegated-User-Id` ou `X-Marko-Delegated-User-Email` pour résoudre le sujet utilisateur dans la même entité."},"status":"OK","code":200,"body":"{\n  \"id\": \"usr_001\",\n  \"email\": \"ops@clubfunding.fr\",\n  \"name\": \"Ops Clubfunding\",\n  \"role\": \"viewer\",\n  \"status\": \"approved\"\n}"}]},{"name":"PUT users.me.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-me-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me","host":["{{baseUrl}}"],"path":["v1","users","me"],"query":[]},"description":"Met à jour le profil du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"name\": \"Ops Clubfunding\",\n  \"first_name\": \"Ops\",\n  \"last_name\": \"Team\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-me-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me","host":["{{baseUrl}}"],"path":["v1","users","me"],"query":[]},"description":"Met à jour le profil du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"name\": \"Ops Clubfunding\",\n  \"first_name\": \"Ops\",\n  \"last_name\": \"Team\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"usr_001\",\n  \"name\": \"Ops Clubfunding\"\n}"}]},{"name":"GET users.preferences.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-preferences-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/preferences","host":["{{baseUrl}}"],"path":["v1","users","me","preferences"],"query":[]},"description":"Retourne les préférences du sujet utilisateur délégué résolu via header."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-preferences-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/preferences","host":["{{baseUrl}}"],"path":["v1","users","me","preferences"],"query":[]},"description":"Retourne les préférences du sujet utilisateur délégué résolu via header."},"status":"OK","code":200,"body":"{\n  \"user_id\": \"usr_001\",\n  \"preferences\": {\n    \"locale\": \"fr\"\n  },\n  \"alert_budget_daily\": 5\n}"}]},{"name":"PUT users.preferences.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-preferences-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/preferences","host":["{{baseUrl}}"],"path":["v1","users","me","preferences"],"query":[]},"description":"Met à jour les préférences du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"preferences\": {\n    \"locale\": \"fr\"\n  },\n  \"alert_budget_daily\": 8\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-preferences-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/preferences","host":["{{baseUrl}}"],"path":["v1","users","me","preferences"],"query":[]},"description":"Met à jour les préférences du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"preferences\": {\n    \"locale\": \"fr\"\n  },\n  \"alert_budget_daily\": 8\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"user_id\": \"usr_001\",\n  \"preferences\": {\n    \"locale\": \"fr\"\n  },\n  \"alert_budget_daily\": 8\n}"}]},{"name":"GET users.alert-preferences.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-alert-preferences-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/alert-preferences","host":["{{baseUrl}}"],"path":["v1","users","me","alert-preferences"],"query":[]},"description":"Retourne les préférences d'alerte du sujet utilisateur délégué résolu via header."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-alert-preferences-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/alert-preferences","host":["{{baseUrl}}"],"path":["v1","users","me","alert-preferences"],"query":[]},"description":"Retourne les préférences d'alerte du sujet utilisateur délégué résolu via header."},"status":"OK","code":200,"body":"[\n  {\n    \"alert_type\": \"task_overdue\",\n    \"enabled\": true,\n    \"min_severity\": \"warning\"\n  }\n]"}]},{"name":"PUT users.alert-preferences.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-alert-preferences-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/alert-preferences","host":["{{baseUrl}}"],"path":["v1","users","me","alert-preferences"],"query":[]},"description":"Met à jour les préférences d'alerte du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"preferences\": [\n    {\n      \"alert_type\": \"task_overdue\",\n      \"enabled\": true,\n      \"min_severity\": \"warning\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-alert-preferences-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/alert-preferences","host":["{{baseUrl}}"],"path":["v1","users","me","alert-preferences"],"query":[]},"description":"Met à jour les préférences d'alerte du sujet utilisateur délégué résolu via header.","body":{"mode":"raw","raw":"{\n  \"preferences\": [\n    {\n      \"alert_type\": \"task_overdue\",\n      \"enabled\": true,\n      \"min_severity\": \"warning\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"[\n  {\n    \"alert_type\": \"task_overdue\",\n    \"enabled\": true,\n    \"min_severity\": \"warning\"\n  }\n]"}]},{"name":"GET users.saved-views.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-list"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views"],"query":[{"key":"entity_type","value":"operations"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Exige un sujet utilisateur délégué résolu via header, une allowlist explicite sur la clé, et la capacité `saved_views`."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-list"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views"],"query":[{"key":"entity_type","value":"operations"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Exige un sujet utilisateur délégué résolu via header, une allowlist explicite sur la clé, et la capacité `saved_views`."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"11111111-1111-1111-1111-111111111111\",\n    \"entity_type\": \"operations\",\n    \"name\": \"Pipeline closing\",\n    \"is_default\": false\n  }\n]"}]},{"name":"POST users.saved-views.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_saved_views_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `saved_views`.\n\nPostman generates `idempotencyKey_users_saved_views_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"entity_type\": \"operations\",\n  \"name\": \"Pipeline closing\",\n  \"filters\": {\n    \"status\": \"closing\"\n  },\n  \"columns\": [\n    \"name\",\n    \"status\"\n  ],\n  \"sort\": {\n    \"sort_by\": \"updated_at\",\n    \"sort_order\": \"desc\"\n  }\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_saved_views_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `saved_views`.\n\nPostman generates `idempotencyKey_users_saved_views_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"entity_type\": \"operations\",\n  \"name\": \"Pipeline closing\",\n  \"filters\": {\n    \"status\": \"closing\"\n  },\n  \"columns\": [\n    \"name\",\n    \"status\"\n  ],\n  \"sort\": {\n    \"sort_by\": \"updated_at\",\n    \"sort_order\": \"desc\"\n  }\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"entity_type\": \"operations\",\n  \"name\": \"Pipeline closing\",\n  \"is_default\": false\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_saved_views_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET users.saved-views.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views/:view_id","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views",":view_id"],"query":[],"variable":[{"key":"view_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the view_id path parameter."}]},"description":"Retourne une vue sauvegardée possédée par le sujet utilisateur délégué."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views/:view_id","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views",":view_id"],"query":[],"variable":[{"key":"view_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the view_id path parameter."}]},"description":"Retourne une vue sauvegardée possédée par le sujet utilisateur délégué."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"entity_type\": \"operations\",\n  \"name\": \"Pipeline closing\",\n  \"is_default\": false\n}"}]},{"name":"PUT users.saved-views.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views/:view_id","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views",":view_id"],"query":[],"variable":[{"key":"view_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the view_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `saved_views`.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pipeline closing v2\",\n  \"is_default\": true\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views/:view_id","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views",":view_id"],"query":[],"variable":[{"key":"view_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the view_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `saved_views`.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pipeline closing v2\",\n  \"is_default\": true\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"name\": \"Pipeline closing v2\",\n  \"is_default\": true\n}"}]},{"name":"DELETE users.saved-views.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-saved-views-delete"}],"url":{"raw":"{{baseUrl}}/v1/users/me/saved-views/:view_id","host":["{{baseUrl}}"],"path":["v1","users","me","saved-views",":view_id"],"query":[],"variable":[{"key":"view_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the view_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `saved_views`."},"response":[]},{"name":"GET users.custom-dashboards.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-list"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-list"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"22222222-2222-2222-2222-222222222222\",\n    \"name\": \"Pilotage portefeuille\",\n    \"is_shared\": false,\n    \"widget_count\": 3\n  }\n]"}]},{"name":"POST users.custom-dashboards.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_custom_dashboards_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`.\n\nPostman generates `idempotencyKey_users_custom_dashboards_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pilotage portefeuille\",\n  \"layout\": [\n    {\n      \"widget_type\": \"kpi_card\",\n      \"title\": \"Total nominal\"\n    }\n  ],\n  \"filters\": {\n    \"fund_id\": \"fond_001\"\n  }\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_custom_dashboards_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`.\n\nPostman generates `idempotencyKey_users_custom_dashboards_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pilotage portefeuille\",\n  \"layout\": [\n    {\n      \"widget_type\": \"kpi_card\",\n      \"title\": \"Total nominal\"\n    }\n  ],\n  \"filters\": {\n    \"fund_id\": \"fond_001\"\n  }\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222222\",\n  \"name\": \"Pilotage portefeuille\",\n  \"is_shared\": false\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_custom_dashboards_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET users.custom-dashboards.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards/:dashboard_id","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards",":dashboard_id"],"query":[],"variable":[{"key":"dashboard_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the dashboard_id path parameter."}]},"description":"Retourne un dashboard possédé par le sujet utilisateur délégué."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-get"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards/:dashboard_id","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards",":dashboard_id"],"query":[],"variable":[{"key":"dashboard_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the dashboard_id path parameter."}]},"description":"Retourne un dashboard possédé par le sujet utilisateur délégué."},"status":"OK","code":200,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222222\",\n  \"name\": \"Pilotage portefeuille\",\n  \"is_shared\": false\n}"}]},{"name":"PUT users.custom-dashboards.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards/:dashboard_id","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards",":dashboard_id"],"query":[],"variable":[{"key":"dashboard_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the dashboard_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pilotage portefeuille v2\",\n  \"is_shared\": false\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards/:dashboard_id","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards",":dashboard_id"],"query":[],"variable":[{"key":"dashboard_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the dashboard_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`.","body":{"mode":"raw","raw":"{\n  \"name\": \"Pilotage portefeuille v2\",\n  \"is_shared\": false\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222222\",\n  \"name\": \"Pilotage portefeuille v2\",\n  \"is_shared\": false\n}"}]},{"name":"DELETE users.custom-dashboards.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-custom-dashboards-delete"}],"url":{"raw":"{{baseUrl}}/v1/users/me/custom-dashboards/:dashboard_id","host":["{{baseUrl}}"],"path":["v1","users","me","custom-dashboards",":dashboard_id"],"query":[],"variable":[{"key":"dashboard_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the dashboard_id path parameter."}]},"description":"Exige une allowlist explicite sur la clé et la capacité `custom_dashboards`."},"response":[]},{"name":"GET users.rgpd.export","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-export"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/export","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","export"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_export`."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-export"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/export","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","export"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_export`."},"status":"OK","code":200,"body":"{\n  \"user_id\": \"usr_001\",\n  \"profile\": {\n    \"email\": \"ops@clubfunding.fr\"\n  },\n  \"preferences\": {},\n  \"notifications\": []\n}"}]},{"name":"GET users.rgpd.inventory","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-inventory"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/inventory","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","inventory"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_inventory`."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-inventory"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/inventory","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","inventory"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_inventory`."},"status":"OK","code":200,"body":"{\n  \"user_id\": \"usr_001\",\n  \"auth_database\": {\n    \"user\": {\n      \"has_data\": true\n    }\n  }\n}"}]},{"name":"DELETE users.rgpd.erasure","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-erasure"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_rgpd_erasure}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/erasure","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","erasure"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_erasure`, avec `{\"confirm\": true}`.\n\nPostman generates `idempotencyKey_users_rgpd_erasure` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"confirm\": true\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-users-rgpd-erasure"},{"key":"Idempotency-Key","value":"{{idempotencyKey_users_rgpd_erasure}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/users/me/rgpd/erasure","host":["{{baseUrl}}"],"path":["v1","users","me","rgpd","erasure"],"query":[]},"description":"Exige une allowlist explicite sur la clé et la capacité `rgpd_erasure`, avec `{\"confirm\": true}`.\n\nPostman generates `idempotencyKey_users_rgpd_erasure` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"confirm\": true\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"user_id\": \"usr_001\",\n  \"actions\": [\n    \"profile_anonymized\"\n  ]\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_users_rgpd_erasure';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET settings.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-settings-get"}],"url":{"raw":"{{baseUrl}}/v1/settings","host":["{{baseUrl}}"],"path":["v1","settings"],"query":[]},"description":"Expose les paramètres métier et branding de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-settings-get"}],"url":{"raw":"{{baseUrl}}/v1/settings","host":["{{baseUrl}}"],"path":["v1","settings"],"query":[]},"description":"Expose les paramètres métier et branding de l'entité."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"name\": \"Clubfunding\",\n  \"mode_reporting\": \"trimestriel\",\n  \"frequence_reporting\": 3,\n  \"risk_threshold\": 75,\n  \"ai_enabled\": true\n}"}]},{"name":"PUT settings.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-settings-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/settings","host":["{{baseUrl}}"],"path":["v1","settings"],"query":[]},"description":"Met à jour les paramètres de reporting et de branding de l'entité.","body":{"mode":"raw","raw":"{\n  \"risk_threshold\": 80,\n  \"zone_vacances\": \"A\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-settings-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/settings","host":["{{baseUrl}}"],"path":["v1","settings"],"query":[]},"description":"Met à jour les paramètres de reporting et de branding de l'entité.","body":{"mode":"raw","raw":"{\n  \"risk_threshold\": 80,\n  \"zone_vacances\": \"A\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"risk_threshold\": 80,\n  \"zone_vacances\": \"A\"\n}"}]},{"name":"GET rcci.summary","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-rcci-summary"}],"url":{"raw":"{{baseUrl}}/v1/rcci/summary","host":["{{baseUrl}}"],"path":["v1","rcci","summary"],"query":[{"key":"risk_threshold","value":"40"}]},"description":"Agrège les covenants en tension, les documents manquants et les opérations à risque de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-rcci-summary"}],"url":{"raw":"{{baseUrl}}/v1/rcci/summary","host":["{{baseUrl}}"],"path":["v1","rcci","summary"],"query":[{"key":"risk_threshold","value":"40"}]},"description":"Agrège les covenants en tension, les documents manquants et les opérations à risque de l'entité."},"status":"OK","code":200,"body":"{\n  \"covenants_breach_count\": 2,\n  \"covenants_warning_count\": 3,\n  \"documents_missing_count\": 4,\n  \"operations_at_risk_count\": 1,\n  \"covenants\": [],\n  \"documents\": [],\n  \"risk_operations\": []\n}"}]},{"name":"GET field-definitions.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-list"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions","host":["{{baseUrl}}"],"path":["v1","field-definitions"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"importance","value":"essentielle"}]},"description":"Expose le référentiel métier des champs MARKO avec filtres et pagination."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-list"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions","host":["{{baseUrl}}"],"path":["v1","field-definitions"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"importance","value":"essentielle"}]},"description":"Expose le référentiel métier des champs MARKO avec filtres et pagination."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"11111111-1111-1111-1111-111111111111\",\n      \"field_key\": \"montant_pret\",\n      \"label_fr\": \"Montant du prêt\",\n      \"value_type\": \"numeric\",\n      \"importance\": \"essentielle\",\n      \"source_type\": \"document\"\n    }\n  ],\n  \"total\": 1,\n  \"limit\": 20,\n  \"offset\": 0\n}"}]},{"name":"GET field-definitions.by-key","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-by-key"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions/by-key/:field_key","host":["{{baseUrl}}"],"path":["v1","field-definitions","by-key",":field_key"],"query":[],"variable":[{"key":"field_key","value":"montant_pret","description":"Sample value for the field_key path parameter."}]},"description":"Retourne la définition détaillée d'un champ métier par field_key."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-by-key"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions/by-key/:field_key","host":["{{baseUrl}}"],"path":["v1","field-definitions","by-key",":field_key"],"query":[],"variable":[{"key":"field_key","value":"montant_pret","description":"Sample value for the field_key path parameter."}]},"description":"Retourne la définition détaillée d'un champ métier par field_key."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"field_key\": \"montant_pret\",\n  \"label_fr\": \"Montant du prêt\",\n  \"value_type\": \"numeric\",\n  \"importance\": \"essentielle\",\n  \"source_type\": \"document\"\n}"}]},{"name":"GET field-definitions.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-get"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions/:field_id","host":["{{baseUrl}}"],"path":["v1","field-definitions",":field_id"],"query":[],"variable":[{"key":"field_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the field_id path parameter."}]},"description":"Retourne la définition détaillée d'un champ métier par identifiant."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-field-definitions-get"}],"url":{"raw":"{{baseUrl}}/v1/field-definitions/:field_id","host":["{{baseUrl}}"],"path":["v1","field-definitions",":field_id"],"query":[],"variable":[{"key":"field_id","value":"11111111-1111-1111-1111-111111111111","description":"Sample value for the field_id path parameter."}]},"description":"Retourne la définition détaillée d'un champ métier par identifiant."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-1111-1111-1111-111111111111\",\n  \"field_key\": \"montant_pret\",\n  \"label_fr\": \"Montant du prêt\",\n  \"value_type\": \"numeric\",\n  \"importance\": \"essentielle\",\n  \"source_type\": \"document\"\n}"}]},{"name":"GET fonds.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-get"}],"url":{"raw":"{{baseUrl}}/v1/fonds/:fond_id","host":["{{baseUrl}}"],"path":["v1","fonds",":fond_id"],"query":[],"variable":[{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the fond_id path parameter."}]},"description":"Retourne le détail d'un fonds MARKO."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-get"}],"url":{"raw":"{{baseUrl}}/v1/fonds/:fond_id","host":["{{baseUrl}}"],"path":["v1","fonds",":fond_id"],"query":[],"variable":[{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the fond_id path parameter."}]},"description":"Retourne le détail d'un fonds MARKO."},"status":"OK","code":200,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222222\",\n  \"name\": \"Clubfunding Debt I\",\n  \"spv_count\": 4\n}"}]},{"name":"POST fonds.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_fonds_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/fonds","host":["{{baseUrl}}"],"path":["v1","fonds"],"query":[]},"description":"Crée un fonds d'investissement dans l'entité.\n\nPostman generates `idempotencyKey_fonds_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Debt II\",\n  \"code\": \"CFD2\",\n  \"status\": \"actif\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_fonds_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/fonds","host":["{{baseUrl}}"],"path":["v1","fonds"],"query":[]},"description":"Crée un fonds d'investissement dans l'entité.\n\nPostman generates `idempotencyKey_fonds_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Debt II\",\n  \"code\": \"CFD2\",\n  \"status\": \"actif\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222223\",\n  \"name\": \"Clubfunding Debt II\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_fonds_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT fonds.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/fonds/:fond_id","host":["{{baseUrl}}"],"path":["v1","fonds",":fond_id"],"query":[],"variable":[{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the fond_id path parameter."}]},"description":"Met à jour les métadonnées d'un fonds.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Debt I Updated\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/fonds/:fond_id","host":["{{baseUrl}}"],"path":["v1","fonds",":fond_id"],"query":[],"variable":[{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the fond_id path parameter."}]},"description":"Met à jour les métadonnées d'un fonds.","body":{"mode":"raw","raw":"{\n  \"name\": \"Clubfunding Debt I Updated\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"22222222-2222-2222-2222-222222222222\",\n  \"name\": \"Clubfunding Debt I Updated\"\n}"}]},{"name":"DELETE fonds.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-fonds-delete"}],"url":{"raw":"{{baseUrl}}/v1/fonds/:fond_id","host":["{{baseUrl}}"],"path":["v1","fonds",":fond_id"],"query":[],"variable":[{"key":"fond_id","value":"22222222-2222-2222-2222-222222222222","description":"Sample value for the fond_id path parameter."}]},"description":"Supprime logiquement un fonds."},"response":[]},{"name":"GET spvs.external.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-external-get"}],"url":{"raw":"{{baseUrl}}/v1/spvs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","spvs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-SPV-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du partenaire vers la SPV MARKO."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-external-get"}],"url":{"raw":"{{baseUrl}}/v1/spvs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","spvs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-SPV-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du partenaire vers la SPV MARKO."},"status":"OK","code":200,"body":"{\n  \"id\": \"33333333-3333-3333-3333-333333333333\",\n  \"entity_id\": \"11111111-1111-1111-1111-111111111111\",\n  \"name\": \"SPV Paris 19\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la République, 75019 Paris\",\n  \"created_at\": \"2026-08-22T08:00:00Z\",\n  \"updated_at\": \"2026-08-22T08:00:00Z\"\n}"}]},{"name":"PUT spvs.external.upsert","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-external-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_spvs_external_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","spvs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-SPV-001","description":"Sample value for the external_id path parameter."}]},"description":"Upsert synchrone par identifiant partenaire. Une ressource MARKO supprimée logiquement est restaurée avec le même UUID. existing_marko_id permet de lier explicitement une SPV existante lors du premier envoi.\n\nPostman generates `idempotencyKey_spvs_external_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Paris 19\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la République, 75019 Paris\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-external-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_spvs_external_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","spvs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-SPV-001","description":"Sample value for the external_id path parameter."}]},"description":"Upsert synchrone par identifiant partenaire. Une ressource MARKO supprimée logiquement est restaurée avec le même UUID. existing_marko_id permet de lier explicitement une SPV existante lors du premier envoi.\n\nPostman generates `idempotencyKey_spvs_external_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Paris 19\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la République, 75019 Paris\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"external_id\": \"CF-SPV-001\",\n  \"marko_id\": \"33333333-3333-3333-3333-333333333333\",\n  \"outcome\": \"created\",\n  \"resource\": {\n    \"id\": \"33333333-3333-3333-3333-333333333333\",\n    \"entity_id\": \"11111111-1111-1111-1111-111111111111\",\n    \"name\": \"SPV Paris 19\",\n    \"created_at\": \"2026-08-22T08:00:00Z\",\n    \"updated_at\": \"2026-08-22T08:00:00Z\"\n  },\n  \"taxonomy_additions\": [],\n  \"request_id\": \"req_cf_spv_upsert\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_spvs_external_upsert';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET spvs.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-get"}],"url":{"raw":"{{baseUrl}}/v1/spvs/:spv_id","host":["{{baseUrl}}"],"path":["v1","spvs",":spv_id"],"query":[],"variable":[{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","description":"Sample value for the spv_id path parameter."}]},"description":"Retourne le détail d'une SPV MARKO."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-get"}],"url":{"raw":"{{baseUrl}}/v1/spvs/:spv_id","host":["{{baseUrl}}"],"path":["v1","spvs",":spv_id"],"query":[],"variable":[{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","description":"Sample value for the spv_id path parameter."}]},"description":"Retourne le détail d'une SPV MARKO."},"status":"OK","code":200,"body":"{\n  \"id\": \"33333333-3333-3333-3333-333333333333\",\n  \"name\": \"SPV Paris 19\",\n  \"operation_count\": 3\n}"}]},{"name":"POST spvs.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_spvs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs","host":["{{baseUrl}}"],"path":["v1","spvs"],"query":[]},"description":"Crée une SPV sur l'entité et le fonds ciblé. La forme juridique, le SIREN et l'adresse peuvent etre fournis des la creation. Le type d'investissement reste porte par l'operation, car une meme SPV peut en regrouper plusieurs.\n\nPostman generates `idempotencyKey_spvs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Marseille\",\n  \"fond_id\": \"22222222-2222-2222-2222-222222222222\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la Republique, 13001 Marseille\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_spvs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs","host":["{{baseUrl}}"],"path":["v1","spvs"],"query":[]},"description":"Crée une SPV sur l'entité et le fonds ciblé. La forme juridique, le SIREN et l'adresse peuvent etre fournis des la creation. Le type d'investissement reste porte par l'operation, car une meme SPV peut en regrouper plusieurs.\n\nPostman generates `idempotencyKey_spvs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Marseille\",\n  \"fond_id\": \"22222222-2222-2222-2222-222222222222\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la Republique, 13001 Marseille\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"33333333-3333-3333-3333-333333333334\",\n  \"name\": \"SPV Marseille\",\n  \"forme_juridique\": \"SAS\",\n  \"siren\": \"123456782\",\n  \"adresse\": \"10 rue de la Republique, 13001 Marseille\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_spvs_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT spvs.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs/:spv_id","host":["{{baseUrl}}"],"path":["v1","spvs",":spv_id"],"query":[],"variable":[{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","description":"Sample value for the spv_id path parameter."}]},"description":"Met à jour les attributs d'une SPV.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Paris 19 Updated\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/spvs/:spv_id","host":["{{baseUrl}}"],"path":["v1","spvs",":spv_id"],"query":[],"variable":[{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","description":"Sample value for the spv_id path parameter."}]},"description":"Met à jour les attributs d'une SPV.","body":{"mode":"raw","raw":"{\n  \"name\": \"SPV Paris 19 Updated\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"33333333-3333-3333-3333-333333333333\",\n  \"name\": \"SPV Paris 19 Updated\"\n}"}]},{"name":"DELETE spvs.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-spvs-delete"}],"url":{"raw":"{{baseUrl}}/v1/spvs/:spv_id","host":["{{baseUrl}}"],"path":["v1","spvs",":spv_id"],"query":[],"variable":[{"key":"spv_id","value":"33333333-3333-3333-3333-333333333333","description":"Sample value for the spv_id path parameter."}]},"description":"Supprime logiquement une SPV."},"response":[]},{"name":"GET search.global","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-search-global"}],"url":{"raw":"{{baseUrl}}/v1/search","host":["{{baseUrl}}"],"path":["v1","search"],"query":[{"key":"q","value":"marko"},{"key":"limit","value":"5"}]},"description":"Recherche transversale sur operations, operateurs, SPV, fonds et documents."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-search-global"}],"url":{"raw":"{{baseUrl}}/v1/search","host":["{{baseUrl}}"],"path":["v1","search"],"query":[{"key":"q","value":"marko"},{"key":"limit","value":"5"}]},"description":"Recherche transversale sur operations, operateurs, SPV, fonds et documents."},"status":"OK","code":200,"body":"{\n  \"query\": \"marko\",\n  \"groups\": [],\n  \"total\": 0\n}"}]},{"name":"GET search.content","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-search-content"}],"url":{"raw":"{{baseUrl}}/v1/search/content","host":["{{baseUrl}}"],"path":["v1","search","content"],"query":[{"key":"q","value":"covenant"},{"key":"limit","value":"10"}]},"description":"Recherche full-text dans le contenu documentaire indexé."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-search-content"}],"url":{"raw":"{{baseUrl}}/v1/search/content","host":["{{baseUrl}}"],"path":["v1","search","content"],"query":[{"key":"q","value":"covenant"},{"key":"limit","value":"10"}]},"description":"Recherche full-text dans le contenu documentaire indexé."},"status":"OK","code":200,"body":"{\n  \"query\": \"covenant\",\n  \"results\": [],\n  \"total\": 0\n}"}]},{"name":"GET operateurs.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-list"}],"url":{"raw":"{{baseUrl}}/v1/operateurs","host":["{{baseUrl}}"],"path":["v1","operateurs"],"query":[{"key":"name","value":"Promoteur Demo"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les opérateurs et leurs métadonnées principales. Utilisez `name` pour une correspondance exacte insensible à la casse ou `search` pour une recherche partielle; ces filtres sont mutuellement exclusifs."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-list"}],"url":{"raw":"{{baseUrl}}/v1/operateurs","host":["{{baseUrl}}"],"path":["v1","operateurs"],"query":[{"key":"name","value":"Promoteur Demo"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les opérateurs et leurs métadonnées principales. Utilisez `name` pour une correspondance exacte insensible à la casse ou `search` pour une recherche partielle; ces filtres sont mutuellement exclusifs."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"op_001\",\n      \"name\": \"Promoteur Demo\",\n      \"type\": \"promoteur\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET operateurs.external.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operateurs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OPERATEUR-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du partenaire vers l'opérateur MARKO."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-external-get"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operateurs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OPERATEUR-001","description":"Sample value for the external_id path parameter."}]},"description":"Résout l'identifiant stable du partenaire vers l'opérateur MARKO."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa\",\n  \"name\": \"Promoteur Demo\",\n  \"siren\": null,\n  \"data\": {},\n  \"source_extraction\": false,\n  \"litiges_en_cours\": false,\n  \"created_at\": \"2026-08-22T08:00:00Z\",\n  \"updated_at\": \"2026-08-22T08:00:00Z\"\n}"}]},{"name":"PUT operateurs.external.upsert","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-external-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_external_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operateurs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OPERATEUR-001","description":"Sample value for the external_id path parameter."}]},"description":"Upsert synchrone par identifiant partenaire, sans exiger de SIREN. Une ressource supprimée logiquement est restaurée avec le même UUID; existing_marko_id lie explicitement une cible existante lors du premier envoi.\n\nPostman generates `idempotencyKey_operateurs_external_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Promoteur Demo\",\n  \"type\": \"promoteur\",\n  \"data\": {}\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-external-upsert"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_external_upsert}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/external/:external_id","host":["{{baseUrl}}"],"path":["v1","operateurs","external",":external_id"],"query":[],"variable":[{"key":"external_id","value":"CF-OPERATEUR-001","description":"Sample value for the external_id path parameter."}]},"description":"Upsert synchrone par identifiant partenaire, sans exiger de SIREN. Une ressource supprimée logiquement est restaurée avec le même UUID; existing_marko_id lie explicitement une cible existante lors du premier envoi.\n\nPostman generates `idempotencyKey_operateurs_external_upsert` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Promoteur Demo\",\n  \"type\": \"promoteur\",\n  \"data\": {}\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"external_id\": \"CF-OPERATEUR-001\",\n  \"marko_id\": \"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa\",\n  \"outcome\": \"created\",\n  \"resource\": {\n    \"id\": \"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa\",\n    \"name\": \"Promoteur Demo\",\n    \"data\": {},\n    \"source_extraction\": false,\n    \"litiges_en_cours\": false,\n    \"created_at\": \"2026-08-22T08:00:00Z\",\n    \"updated_at\": \"2026-08-22T08:00:00Z\"\n  },\n  \"taxonomy_additions\": [],\n  \"request_id\": \"req_cf_operateur_upsert\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operateurs_external_upsert';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET operateurs.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-get"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Retourne le détail d'un opérateur."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-get"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Retourne le détail d'un opérateur."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"name\": \"Promoteur Demo\"\n}"}]},{"name":"POST operateurs.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs","host":["{{baseUrl}}"],"path":["v1","operateurs"],"query":[]},"description":"Crée un opérateur dans l'entité.\n\nPostman generates `idempotencyKey_operateurs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Nouveau Promoteur\",\n  \"siren\": \"123456789\",\n  \"type\": \"promoteur\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs","host":["{{baseUrl}}"],"path":["v1","operateurs"],"query":[]},"description":"Crée un opérateur dans l'entité.\n\nPostman generates `idempotencyKey_operateurs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Nouveau Promoteur\",\n  \"siren\": \"123456789\",\n  \"type\": \"promoteur\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb\",\n  \"name\": \"Nouveau Promoteur\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operateurs_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT operateurs.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Met à jour l'identité ou les données d'un opérateur.","body":{"mode":"raw","raw":"{\n  \"name\": \"Promoteur Demo Updated\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Met à jour l'identité ou les données d'un opérateur.","body":{"mode":"raw","raw":"{\n  \"name\": \"Promoteur Demo Updated\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"name\": \"Promoteur Demo Updated\"\n}"}]},{"name":"DELETE operateurs.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-delete"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Supprime logiquement un opérateur."},"response":[]},{"name":"GET operateurs.third-party-risks.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-list"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks"],"query":[{"key":"active_only","value":"True"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Expose les événements de surveillance tiers rattachés à un opérateur."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-list"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks"],"query":[{"key":"active_only","value":"True"},{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Expose les événements de surveillance tiers rattachés à un opérateur."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"risk_001\",\n      \"severity\": \"warning\",\n      \"title\": \"Publication BODACC\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET operateurs.third-party-risks.summary","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-summary"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks/summary","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks","summary"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Retourne le score de risque tiers et les compteurs agrégés d'un opérateur."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-summary"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks/summary","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks","summary"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Retourne le score de risque tiers et les compteurs agrégés d'un opérateur."},"status":"OK","code":200,"body":"{\n  \"operateur_id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"active_events\": 1,\n  \"risk_score\": 42.0\n}"}]},{"name":"POST operateurs.third-party-risks.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_third_party_risks_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Ajoute manuellement un événement de risque tiers pour un opérateur.\n\nPostman generates `idempotencyKey_operateurs_third_party_risks_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operateur_id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"source\": \"manual\",\n  \"event_type\": \"watchlist\",\n  \"severity\": \"warning\",\n  \"title\": \"Alerte manuelle\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operateurs_third_party_risks_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."}]},"description":"Ajoute manuellement un événement de risque tiers pour un opérateur.\n\nPostman generates `idempotencyKey_operateurs_third_party_risks_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"operateur_id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"source\": \"manual\",\n  \"event_type\": \"watchlist\",\n  \"severity\": \"warning\",\n  \"title\": \"Alerte manuelle\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"risk_001\",\n  \"title\": \"Alerte manuelle\",\n  \"severity\": \"warning\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operateurs_third_party_risks_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST operateurs.third-party-risks.resolve","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-resolve"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks/:event_id/resolve","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks",":event_id","resolve"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."},{"key":"event_id","value":"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb","description":"Sample value for the event_id path parameter."}]},"description":"Marque un événement tiers comme résolu.","body":{"mode":"raw","raw":"{\n  \"resolved_at\": \"2026-04-13T10:00:00Z\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operateurs-third-party-risks-resolve"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operateurs/:operateur_id/third-party-risks/:event_id/resolve","host":["{{baseUrl}}"],"path":["v1","operateurs",":operateur_id","third-party-risks",":event_id","resolve"],"query":[],"variable":[{"key":"operateur_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the operateur_id path parameter."},{"key":"event_id","value":"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb","description":"Sample value for the event_id path parameter."}]},"description":"Marque un événement tiers comme résolu.","body":{"mode":"raw","raw":"{\n  \"resolved_at\": \"2026-04-13T10:00:00Z\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb\",\n  \"is_resolved\": true\n}"}]},{"name":"GET alerts.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-list"}],"url":{"raw":"{{baseUrl}}/v1/alerts","host":["{{baseUrl}}"],"path":["v1","alerts"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"active_only","value":"True"}]},"description":"Expose la projection alertes de l'entité avec filtres."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-list"}],"url":{"raw":"{{baseUrl}}/v1/alerts","host":["{{baseUrl}}"],"path":["v1","alerts"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"active_only","value":"True"}]},"description":"Expose la projection alertes de l'entité avec filtres."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"alert_001\",\n      \"title\": \"Covenant en alerte\",\n      \"severity\": \"critical\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET alerts.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-get"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Retourne une alerte unitaire."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-get"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Retourne une alerte unitaire."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-1111-1111-1111-111111111111\",\n  \"title\": \"Covenant en alerte\"\n}"}]},{"name":"POST alerts.acknowledge","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-acknowledge"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/acknowledge","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","acknowledge"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Passe l'alerte au statut acknowledged."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-acknowledge"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/acknowledge","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","acknowledge"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Passe l'alerte au statut acknowledged."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-1111-1111-1111-111111111111\",\n  \"alert_status\": \"acknowledged\"\n}"}]},{"name":"POST alerts.resolve","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-resolve"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/resolve","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","resolve"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Passe l'alerte au statut resolved."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-resolve"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/resolve","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","resolve"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Passe l'alerte au statut resolved."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-1111-1111-1111-111111111111\",\n  \"alert_status\": \"resolved\"\n}"}]},{"name":"POST alerts.snooze","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-snooze"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/snooze","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","snooze"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Snooze une alerte pour quelques jours.","body":{"mode":"raw","raw":"{\n  \"days\": 7\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-alerts-snooze"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/alerts/:alert_id/actions/snooze","host":["{{baseUrl}}"],"path":["v1","alerts",":alert_id","actions","snooze"],"query":[],"variable":[{"key":"alert_id","value":"aaaaaaaa-1111-1111-1111-111111111111","description":"Sample value for the alert_id path parameter."}]},"description":"Snooze une alerte pour quelques jours.","body":{"mode":"raw","raw":"{\n  \"days\": 7\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-1111-1111-1111-111111111111\",\n  \"alert_status\": \"snoozed\"\n}"}]},{"name":"GET notifications.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-list"}],"url":{"raw":"{{baseUrl}}/v1/notifications","host":["{{baseUrl}}"],"path":["v1","notifications"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les notifications de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-list"}],"url":{"raw":"{{baseUrl}}/v1/notifications","host":["{{baseUrl}}"],"path":["v1","notifications"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les notifications de l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"notif_001\",\n      \"title\": \"Nouveau document\",\n      \"read\": false\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET notifications.unread-count","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-unread-count"}],"url":{"raw":"{{baseUrl}}/v1/notifications/unread-count","host":["{{baseUrl}}"],"path":["v1","notifications","unread-count"],"query":[]},"description":"Retourne le compteur unread et le flag critique."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-unread-count"}],"url":{"raw":"{{baseUrl}}/v1/notifications/unread-count","host":["{{baseUrl}}"],"path":["v1","notifications","unread-count"],"query":[]},"description":"Retourne le compteur unread et le flag critique."},"status":"OK","code":200,"body":"{\n  \"count\": 3,\n  \"has_critical\": true\n}"}]},{"name":"GET notifications.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-get"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Retourne une notification unitaire."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-get"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Retourne une notification unitaire."},"status":"OK","code":200,"body":"{\n  \"id\": \"cccccccc-cccc-cccc-cccc-cccccccccccc\",\n  \"title\": \"Nouveau document\",\n  \"read\": false\n}"}]},{"name":"POST notifications.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_notifications_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/notifications","host":["{{baseUrl}}"],"path":["v1","notifications"],"query":[]},"description":"Crée une notification ciblée dans l'entité.\n\nPostman generates `idempotencyKey_notifications_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"type\": \"custom\",\n  \"severity\": \"info\",\n  \"title\": \"Push partenaire\",\n  \"target_url\": \"/dashboard\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_notifications_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/notifications","host":["{{baseUrl}}"],"path":["v1","notifications"],"query":[]},"description":"Crée une notification ciblée dans l'entité.\n\nPostman generates `idempotencyKey_notifications_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"type\": \"custom\",\n  \"severity\": \"info\",\n  \"title\": \"Push partenaire\",\n  \"target_url\": \"/dashboard\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"dddddddd-dddd-dddd-dddd-dddddddddddd\",\n  \"title\": \"Push partenaire\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_notifications_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST notifications.mark-read","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-mark-read"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id/actions/read","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id","actions","read"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Passe le drapeau read à true."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-mark-read"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id/actions/read","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id","actions","read"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Passe le drapeau read à true."},"status":"OK","code":200,"body":"{\n  \"id\": \"cccccccc-cccc-cccc-cccc-cccccccccccc\",\n  \"read\": true\n}"}]},{"name":"POST notifications.read-all","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-read-all"}],"url":{"raw":"{{baseUrl}}/v1/notifications/actions/read-all","host":["{{baseUrl}}"],"path":["v1","notifications","actions","read-all"],"query":[]},"description":"Marque toutes les notifications comme lues."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-read-all"}],"url":{"raw":"{{baseUrl}}/v1/notifications/actions/read-all","host":["{{baseUrl}}"],"path":["v1","notifications","actions","read-all"],"query":[]},"description":"Marque toutes les notifications comme lues."},"status":"OK","code":200,"body":"{\n  \"marked_read\": 12\n}"}]},{"name":"POST notifications.false-positive","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-false-positive"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id/actions/false-positive","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id","actions","false-positive"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Marque une notification comme faux positif sans la supprimer."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-false-positive"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id/actions/false-positive","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id","actions","false-positive"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Marque une notification comme faux positif sans la supprimer."},"status":"OK","code":200,"body":"{\n  \"id\": \"cccccccc-cccc-cccc-cccc-cccccccccccc\",\n  \"was_false_positive\": true\n}"}]},{"name":"DELETE notifications.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-notifications-delete"}],"url":{"raw":"{{baseUrl}}/v1/notifications/:notification_id","host":["{{baseUrl}}"],"path":["v1","notifications",":notification_id"],"query":[],"variable":[{"key":"notification_id","value":"cccccccc-cccc-cccc-cccc-cccccccccccc","description":"Sample value for the notification_id path parameter."}]},"description":"Supprime une notification de l'entité."},"response":[]},{"name":"GET calendar.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-list"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events","host":["{{baseUrl}}"],"path":["v1","calendar","events"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les échéances et événements persistés de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-list"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events","host":["{{baseUrl}}"],"path":["v1","calendar","events"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les échéances et événements persistés de l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"evt_001\",\n      \"title\": \"AG annuelle\",\n      \"event_type\": \"ag_date\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET calendar.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-get"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Retourne un événement calendrier unitaire."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-get"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Retourne un événement calendrier unitaire."},"status":"OK","code":200,"body":"{\n  \"id\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n  \"title\": \"AG annuelle\"\n}"}]},{"name":"POST calendar.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_calendar_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events","host":["{{baseUrl}}"],"path":["v1","calendar","events"],"query":[]},"description":"Crée un événement manuel ou IA persisté.\n\nPostman generates `idempotencyKey_calendar_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"title\": \"AG annuelle\",\n  \"event_date\": \"2026-06-30\",\n  \"event_type\": \"ag_date\",\n  \"source\": \"manual\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_calendar_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events","host":["{{baseUrl}}"],"path":["v1","calendar","events"],"query":[]},"description":"Crée un événement manuel ou IA persisté.\n\nPostman generates `idempotencyKey_calendar_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"title\": \"AG annuelle\",\n  \"event_date\": \"2026-06-30\",\n  \"event_type\": \"ag_date\",\n  \"source\": \"manual\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeef\",\n  \"title\": \"AG annuelle\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_calendar_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT calendar.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Met à jour un événement calendrier.","body":{"mode":"raw","raw":"{\n  \"title\": \"AG annuelle validée\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Met à jour un événement calendrier.","body":{"mode":"raw","raw":"{\n  \"title\": \"AG annuelle validée\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n  \"title\": \"AG annuelle validée\"\n}"}]},{"name":"DELETE calendar.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-delete"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Supprime un événement calendrier."},"response":[]},{"name":"POST calendar.accept","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-accept"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id/actions/accept","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id","actions","accept"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Accepte un événement proposé."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-accept"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id/actions/accept","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id","actions","accept"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Accepte un événement proposé."},"status":"OK","code":200,"body":"{\n  \"id\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n  \"accepted\": true\n}"}]},{"name":"POST calendar.reject","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-reject"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id/actions/reject","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id","actions","reject"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Rejette un événement proposé."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-calendar-reject"}],"url":{"raw":"{{baseUrl}}/v1/calendar/events/:event_id/actions/reject","host":["{{baseUrl}}"],"path":["v1","calendar","events",":event_id","actions","reject"],"query":[],"variable":[{"key":"event_id","value":"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee","description":"Sample value for the event_id path parameter."}]},"description":"Rejette un événement proposé."},"status":"OK","code":200,"body":"{\n  \"id\": \"eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee\",\n  \"accepted\": false\n}"}]},{"name":"GET enrichment.siren","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Retourne uniquement les données déjà en cache ou présentes dans la base locale. Cet endpoint de lecture ne déclenche aucun appel facturable."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Retourne uniquement les données déjà en cache ou présentes dans la base locale. Cet endpoint de lecture ne déclenche aucun appel facturable."},"status":"OK","code":200,"body":"{\n  \"success\": true,\n  \"data\": {\n    \"siren\": \"552120222\",\n    \"raison_sociale\": \"Societe Generale\",\n    \"forme_juridique\": \"SA\",\n    \"source\": \"manual\",\n    \"is_radiee\": false\n  },\n  \"cached\": false,\n  \"error\": null\n}"}]},{"name":"POST enrichment.siren.resolve","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren-resolve"},{"key":"Idempotency-Key","value":"{{idempotencyKey_enrichment_siren_resolve}}"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren/resolve","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren","resolve"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Résout d'abord les données locales puis réserve de façon idempotente tout appel Pappers facturable. Requiert le header Idempotency-Key.\n\nPostman generates `idempotencyKey_enrichment_siren_resolve` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren-resolve"},{"key":"Idempotency-Key","value":"{{idempotencyKey_enrichment_siren_resolve}}"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren/resolve","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren","resolve"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Résout d'abord les données locales puis réserve de façon idempotente tout appel Pappers facturable. Requiert le header Idempotency-Key.\n\nPostman generates `idempotencyKey_enrichment_siren_resolve` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"status":"OK","code":200,"body":"{\n  \"success\": true,\n  \"data\": {\n    \"siren\": \"552120222\",\n    \"raison_sociale\": \"Societe Generale\",\n    \"forme_juridique\": \"SA\",\n    \"source\": \"pappers\",\n    \"is_radiee\": false\n  },\n  \"cached\": false,\n  \"error\": null\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_enrichment_siren_resolve';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET enrichment.siren.validate","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren-validate"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren/validate","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren","validate"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Vérifie le format et le checksum Luhn d'un SIREN sans appeler un provider externe."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren-validate"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren/validate","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren","validate"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Vérifie le format et le checksum Luhn d'un SIREN sans appeler un provider externe."},"status":"OK","code":200,"body":"{\n  \"siren\": \"552120222\",\n  \"valid\": true,\n  \"luhn_valid\": true,\n  \"message\": null\n}"}]},{"name":"DELETE enrichment.siren.invalidate-cache","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-enrichment-siren-invalidate-cache"}],"url":{"raw":"{{baseUrl}}/v1/enrichment/siren/:siren/cache","host":["{{baseUrl}}"],"path":["v1","enrichment","siren",":siren","cache"],"query":[],"variable":[{"key":"siren","value":"552120222","description":"Sample value for the siren path parameter."}]},"description":"Supprime l'entrée de cache. Une nouvelle résolution provider exige ensuite POST /v1/enrichment/siren/{siren}/resolve."},"response":[]},{"name":"GET operations.repayments.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-repayments-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/repayments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","repayments"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne les remboursements saisis sur une opération avec pagination."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-repayments-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/repayments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","repayments"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Retourne les remboursements saisis sur une opération avec pagination."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"99999999-9999-9999-9999-999999999999\",\n      \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n      \"date\": \"2026-03-31\",\n      \"principal\": \"50000.00\",\n      \"interest\": \"4200.00\",\n      \"total\": \"54200.00\",\n      \"remaining_balance\": \"950000.00\",\n      \"source\": \"manual\"\n    }\n  ],\n  \"total\": 1,\n  \"limit\": 20,\n  \"offset\": 0\n}"}]},{"name":"POST operations.repayments.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-repayments-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_repayments_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/repayments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","repayments"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Enregistre un remboursement sur une opération.\n\nPostman generates `idempotencyKey_operations_repayments_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-03-31\",\n  \"principal\": \"50000.00\",\n  \"interest\": \"4200.00\",\n  \"total\": \"54200.00\",\n  \"remaining_balance\": \"950000.00\",\n  \"source\": \"manual\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-operations-repayments-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_operations_repayments_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/repayments","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","repayments"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Enregistre un remboursement sur une opération.\n\nPostman generates `idempotencyKey_operations_repayments_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"date\": \"2026-03-31\",\n  \"principal\": \"50000.00\",\n  \"interest\": \"4200.00\",\n  \"total\": \"54200.00\",\n  \"remaining_balance\": \"950000.00\",\n  \"source\": \"manual\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"99999999-9999-9999-9999-999999999999\",\n  \"operation_id\": \"44444444-4444-4444-4444-444444444444\",\n  \"date\": \"2026-03-31\",\n  \"principal\": \"50000.00\",\n  \"interest\": \"4200.00\",\n  \"total\": \"54200.00\",\n  \"remaining_balance\": \"950000.00\",\n  \"source\": \"manual\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_operations_repayments_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET reports.inrev","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reports-inrev"}],"url":{"raw":"{{baseUrl}}/v1/reports/inrev","host":["{{baseUrl}}"],"path":["v1","reports","inrev"],"query":[]},"description":"Génère le classeur INREV standard de l'entité au format XLSX."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reports-inrev"}],"url":{"raw":"{{baseUrl}}/v1/reports/inrev","host":["{{baseUrl}}"],"path":["v1","reports","inrev"],"query":[]},"description":"Génère le classeur INREV standard de l'entité au format XLSX."},"status":"OK","code":200,"body":"{\n  \"filename\": \"INREV_Report.xlsx\",\n  \"content_type\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n}"}]},{"name":"GET reporting.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-list"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates","host":["{{baseUrl}}"],"path":["v1","reporting","templates"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les templates de reporting configurés pour l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-list"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates","host":["{{baseUrl}}"],"path":["v1","reporting","templates"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les templates de reporting configurés pour l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"tpl_001\",\n      \"name\": \"Quarterly Pack\",\n      \"template_type\": \"quarterly\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET reporting.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-get"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id"],"query":[],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Retourne le détail d'un template de reporting."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-get"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id"],"query":[],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Retourne le détail d'un template de reporting."},"status":"OK","code":200,"body":"{\n  \"id\": \"ffffffff-ffff-ffff-ffff-ffffffffffff\",\n  \"name\": \"Quarterly Pack\"\n}"}]},{"name":"POST reporting.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_reporting_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates","host":["{{baseUrl}}"],"path":["v1","reporting","templates"],"query":[]},"description":"Crée un template de reporting personnalisé.\n\nPostman generates `idempotencyKey_reporting_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Quarterly Pack\",\n  \"template_type\": \"quarterly\",\n  \"format\": \"pdf\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_reporting_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates","host":["{{baseUrl}}"],"path":["v1","reporting","templates"],"query":[]},"description":"Crée un template de reporting personnalisé.\n\nPostman generates `idempotencyKey_reporting_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Quarterly Pack\",\n  \"template_type\": \"quarterly\",\n  \"format\": \"pdf\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"ffffffff-ffff-ffff-ffff-fffffffffffe\",\n  \"name\": \"Quarterly Pack\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_reporting_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT reporting.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id"],"query":[],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Met à jour un template existant.","body":{"mode":"raw","raw":"{\n  \"name\": \"Quarterly Pack v2\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id"],"query":[],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Met à jour un template existant.","body":{"mode":"raw","raw":"{\n  \"name\": \"Quarterly Pack v2\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"ffffffff-ffff-ffff-ffff-ffffffffffff\",\n  \"name\": \"Quarterly Pack v2\"\n}"}]},{"name":"DELETE reporting.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-delete"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id"],"query":[],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Supprime un template de reporting non système."},"response":[]},{"name":"GET reporting.preview","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-preview"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id/preview","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id","preview"],"query":[{"key":"limit","value":"10"}],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Retourne un aperçu tabulaire d'un template."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-reporting-preview"}],"url":{"raw":"{{baseUrl}}/v1/reporting/templates/:template_id/preview","host":["{{baseUrl}}"],"path":["v1","reporting","templates",":template_id","preview"],"query":[{"key":"limit","value":"10"}],"variable":[{"key":"template_id","value":"ffffffff-ffff-ffff-ffff-ffffffffffff","description":"Sample value for the template_id path parameter."}]},"description":"Retourne un aperçu tabulaire d'un template."},"status":"OK","code":200,"body":"{\n  \"headers\": [\n    \"operation_name\",\n    \"status\"\n  ],\n  \"rows\": [\n    {\n      \"operation_name\": \"Demo Deal\",\n      \"status\": \"instruction\"\n    }\n  ]\n}"}]},{"name":"GET workflows.presets","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-presets"}],"url":{"raw":"{{baseUrl}}/v1/workflows/presets","host":["{{baseUrl}}"],"path":["v1","workflows","presets"],"query":[]},"description":"Expose les presets d'automatisation supportés."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-presets"}],"url":{"raw":"{{baseUrl}}/v1/workflows/presets","host":["{{baseUrl}}"],"path":["v1","workflows","presets"],"query":[]},"description":"Expose les presets d'automatisation supportés."},"status":"OK","code":200,"body":"[\n  {\n    \"key\": \"kpi-monthly-snapshot\",\n    \"label\": \"Snapshot KPI mensuel\"\n  }\n]"}]},{"name":"GET workflows.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-list"}],"url":{"raw":"{{baseUrl}}/v1/workflows","host":["{{baseUrl}}"],"path":["v1","workflows"],"query":[]},"description":"Expose les automatisations système et personnalisées de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-list"}],"url":{"raw":"{{baseUrl}}/v1/workflows","host":["{{baseUrl}}"],"path":["v1","workflows"],"query":[]},"description":"Expose les automatisations système et personnalisées de l'entité."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"kpi-monthly-snapshot\",\n    \"enabled\": true\n  }\n]"}]},{"name":"POST workflows.toggle","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-toggle"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_toggle}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/:workflow_id/actions/toggle","host":["{{baseUrl}}"],"path":["v1","workflows",":workflow_id","actions","toggle"],"query":[],"variable":[{"key":"workflow_id","value":"kpi-monthly-snapshot","description":"Sample value for the workflow_id path parameter."}]},"description":"Bascule l'état d'un workflow système ou personnalisé.\n\nPostman generates `idempotencyKey_workflows_toggle` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-toggle"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_toggle}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/:workflow_id/actions/toggle","host":["{{baseUrl}}"],"path":["v1","workflows",":workflow_id","actions","toggle"],"query":[],"variable":[{"key":"workflow_id","value":"kpi-monthly-snapshot","description":"Sample value for the workflow_id path parameter."}]},"description":"Bascule l'état d'un workflow système ou personnalisé.\n\nPostman generates `idempotencyKey_workflows_toggle` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"status":"OK","code":200,"body":"{\n  \"id\": \"kpi-monthly-snapshot\",\n  \"enabled\": false\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_toggle';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST workflows.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions"],"query":[]},"description":"Crée une définition de workflow personnalisée.\n\nPostman generates `idempotencyKey_workflows_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Run closing kickoff tasks\",\n  \"preset_key\": \"closing_kickoff_tasks\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions"],"query":[]},"description":"Crée une définition de workflow personnalisée.\n\nPostman generates `idempotencyKey_workflows_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Run closing kickoff tasks\",\n  \"preset_key\": \"closing_kickoff_tasks\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"custom-workflow-1\",\n  \"custom\": true\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT workflows.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions/:definition_id","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions",":definition_id"],"query":[],"variable":[{"key":"definition_id","value":"custom-workflow-1","description":"Sample value for the definition_id path parameter."}]},"description":"Met à jour une définition de workflow personnalisée.","body":{"mode":"raw","raw":"{\n  \"description\": \"Workflow updated by smoke runner\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions/:definition_id","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions",":definition_id"],"query":[],"variable":[{"key":"definition_id","value":"custom-workflow-1","description":"Sample value for the definition_id path parameter."}]},"description":"Met à jour une définition de workflow personnalisée.","body":{"mode":"raw","raw":"{\n  \"description\": \"Workflow updated by smoke runner\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"custom-workflow-1\",\n  \"description\": \"Workflow updated by smoke runner\"\n}"}]},{"name":"DELETE workflows.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-delete"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions/:definition_id","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions",":definition_id"],"query":[],"variable":[{"key":"definition_id","value":"custom-workflow-1","description":"Sample value for the definition_id path parameter."}]},"description":"Supprime une définition de workflow personnalisée."},"response":[]},{"name":"POST workflows.run","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-run"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_run}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions/:definition_id/run","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions",":definition_id","run"],"query":[],"variable":[{"key":"definition_id","value":"custom-workflow-1","description":"Sample value for the definition_id path parameter."}]},"description":"Déclenche une exécution manuelle d'un workflow personnalisé.\n\nPostman generates `idempotencyKey_workflows_run` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[{"name":"Sample 202","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-run"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_run}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/workflow-definitions/:definition_id/run","host":["{{baseUrl}}"],"path":["v1","workflows","workflow-definitions",":definition_id","run"],"query":[],"variable":[{"key":"definition_id","value":"custom-workflow-1","description":"Sample value for the definition_id path parameter."}]},"description":"Déclenche une exécution manuelle d'un workflow personnalisé.\n\nPostman generates `idempotencyKey_workflows_run` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"status":"OK","code":202,"body":"{\n  \"workflow\": {\n    \"id\": \"custom-workflow-1\"\n  },\n  \"run\": {\n    \"status\": \"queued\"\n  }\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_run';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST workflows.ai-extraction-jobs.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_ai_extraction_jobs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs"],"query":[]},"description":"Place un job d'extraction IA dans la file gouvernée pour un document.\n\nPostman generates `idempotencyKey_workflows_ai_extraction_jobs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"document_id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"operation_id\": null,\n  \"run_now\": false\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 202","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_ai_extraction_jobs_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs"],"query":[]},"description":"Place un job d'extraction IA dans la file gouvernée pour un document.\n\nPostman generates `idempotencyKey_workflows_ai_extraction_jobs_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"document_id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"operation_id\": null,\n  \"run_now\": false\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":202,"body":"{\n  \"id\": \"job_001\",\n  \"status\": \"queued\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_ai_extraction_jobs_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET workflows.ai-extraction-jobs.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-list"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"status","value":"completed"}]},"description":"Expose les jobs d'extraction IA de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-list"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"},{"key":"status","value":"completed"}]},"description":"Expose les jobs d'extraction IA de l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"job_001\",\n      \"status\": \"completed\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET workflows.ai-extraction-jobs.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-get"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs/:job_id","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs",":job_id"],"query":[],"variable":[{"key":"job_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the job_id path parameter."}]},"description":"Retourne le détail d'un job d'extraction IA."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-ai-extraction-jobs-get"}],"url":{"raw":"{{baseUrl}}/v1/workflows/ai-extraction-jobs/:job_id","host":["{{baseUrl}}"],"path":["v1","workflows","ai-extraction-jobs",":job_id"],"query":[],"variable":[{"key":"job_id","value":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","description":"Sample value for the job_id path parameter."}]},"description":"Retourne le détail d'un job d'extraction IA."},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n  \"status\": \"completed\"\n}"}]},{"name":"GET workflows.history","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-history"}],"url":{"raw":"{{baseUrl}}/v1/workflows/history","host":["{{baseUrl}}"],"path":["v1","workflows","history"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose l'historique d'exécution des jobs et workflows."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-history"}],"url":{"raw":"{{baseUrl}}/v1/workflows/history","host":["{{baseUrl}}"],"path":["v1","workflows","history"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose l'historique d'exécution des jobs et workflows."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"run_id\": \"run_001\",\n      \"status\": \"completed\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET workflows.stats","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-stats"}],"url":{"raw":"{{baseUrl}}/v1/workflows/stats","host":["{{baseUrl}}"],"path":["v1","workflows","stats"],"query":[]},"description":"Expose un résumé des exécutions workflows."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-stats"}],"url":{"raw":"{{baseUrl}}/v1/workflows/stats","host":["{{baseUrl}}"],"path":["v1","workflows","stats"],"query":[]},"description":"Expose un résumé des exécutions workflows."},"status":"OK","code":200,"body":"{\n  \"system_total\": 12,\n  \"system_completed\": 10,\n  \"custom_total\": 2\n}"}]},{"name":"GET workflows.recommendations","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations"],"query":[{"key":"scope_type","value":"entity"},{"key":"only_high_priority","value":"False"},{"key":"include_dismissed","value":"False"}]},"description":"Expose les recommandations d'automatisation calculées pour l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations"],"query":[{"key":"scope_type","value":"entity"},{"key":"only_high_priority","value":"False"},{"key":"include_dismissed","value":"False"}]},"description":"Expose les recommandations d'automatisation calculées pour l'entité."},"status":"OK","code":200,"body":"{\n  \"scope_type\": \"entity\",\n  \"scope_label\": \"Entity\",\n  \"items\": [],\n  \"bundles\": [],\n  \"kpis\": {\n    \"recommendations_total\": 0\n  }\n}"}]},{"name":"POST workflows.recommendations-preview","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-preview"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/preview","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations","preview"],"query":[]},"description":"Calcule une vue de recommandations sans persister d'état serveur.","body":{"mode":"raw","raw":"{\n  \"scope_type\": \"entity\",\n  \"scope_id\": null,\n  \"only_high_priority\": false,\n  \"include_dismissed\": false\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-preview"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/preview","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations","preview"],"query":[]},"description":"Calcule une vue de recommandations sans persister d'état serveur.","body":{"mode":"raw","raw":"{\n  \"scope_type\": \"entity\",\n  \"scope_id\": null,\n  \"only_high_priority\": false,\n  \"include_dismissed\": false\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"scope_type\": \"entity\",\n  \"scope_label\": \"Entity\",\n  \"items\": [],\n  \"bundles\": [],\n  \"kpis\": {\n    \"recommendations_total\": 0\n  }\n}"}]},{"name":"POST workflows.recommendations.materialize","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-materialize"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_recommendations_materialize}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/materialize","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations","materialize"],"query":[]},"description":"Persiste une seule recommandation prévisualisée avant acceptation, report ou rejet.\n\nPostman generates `idempotencyKey_workflows_recommendations_materialize` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"scope_type\": \"entity\",\n  \"scope_id\": null,\n  \"bundle_key\": \"reporting\",\n  \"workflow_key\": \"reporting_sponsor_escalation\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-materialize"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_recommendations_materialize}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/materialize","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations","materialize"],"query":[]},"description":"Persiste une seule recommandation prévisualisée avant acceptation, report ou rejet.\n\nPostman generates `idempotencyKey_workflows_recommendations_materialize` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"scope_type\": \"entity\",\n  \"scope_id\": null,\n  \"bundle_key\": \"reporting\",\n  \"workflow_key\": \"reporting_sponsor_escalation\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  \"status\": \"proposed\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_recommendations_materialize';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"POST workflows.recommendations.accept","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-accept"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/accept","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","accept"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Acquitte une recommandation d'automatisation côté entité.","body":{"mode":"raw","raw":"{\n  \"note\": \"Automatisation validée\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-accept"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/accept","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","accept"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Acquitte une recommandation d'automatisation côté entité.","body":{"mode":"raw","raw":"{\n  \"note\": \"Automatisation validée\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  \"status\": \"accepted\"\n}"}]},{"name":"POST workflows.recommendations.dismiss","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-dismiss"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/dismiss","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","dismiss"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Classe une recommandation comme non pertinente.","body":{"mode":"raw","raw":"{\n  \"note\": \"Pas adapté\",\n  \"reason\": \"context_mismatch\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-dismiss"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/dismiss","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","dismiss"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Classe une recommandation comme non pertinente.","body":{"mode":"raw","raw":"{\n  \"note\": \"Pas adapté\",\n  \"reason\": \"context_mismatch\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  \"status\": \"dismissed\"\n}"}]},{"name":"POST workflows.recommendations.snooze","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-snooze"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/snooze","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","snooze"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Snooze une recommandation pendant quelques jours ou jusqu'à une date donnée.","body":{"mode":"raw","raw":"{\n  \"days\": 14\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-snooze"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/snooze","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","snooze"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Snooze une recommandation pendant quelques jours ou jusqu'à une date donnée.","body":{"mode":"raw","raw":"{\n  \"days\": 14\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\n  \"status\": \"snoozed\"\n}"}]},{"name":"POST workflows.recommendations.create-workflow","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-create-workflow"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_recommendations_create_workflow}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/create-workflow","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","create-workflow"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Instancie un workflow personnalisé prérempli à partir d'une recommandation validée.\n\nPostman generates `idempotencyKey_workflows_recommendations_create_workflow` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-workflows-recommendations-create-workflow"},{"key":"Idempotency-Key","value":"{{idempotencyKey_workflows_recommendations_create_workflow}}"}],"url":{"raw":"{{baseUrl}}/v1/workflows/recommendations/:recommendation_id/create-workflow","host":["{{baseUrl}}"],"path":["v1","workflows","recommendations",":recommendation_id","create-workflow"],"query":[],"variable":[{"key":"recommendation_id","value":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Sample value for the recommendation_id path parameter."}]},"description":"Instancie un workflow personnalisé prérempli à partir d'une recommandation validée.\n\nPostman generates `idempotencyKey_workflows_recommendations_create_workflow` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write."},"status":"OK","code":201,"body":"{\n  \"id\": \"custom-1234\",\n  \"custom\": true,\n  \"enabled\": true\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_workflows_recommendations_create_workflow';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"GET tasks.aggregate","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-aggregate"}],"url":{"raw":"{{baseUrl}}/v1/tasks","host":["{{baseUrl}}"],"path":["v1","tasks"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les tâches Kanban agrégées de l'entité."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-aggregate"}],"url":{"raw":"{{baseUrl}}/v1/tasks","host":["{{baseUrl}}"],"path":["v1","tasks"],"query":[{"key":"limit","value":"20"},{"key":"offset","value":"0"}]},"description":"Expose les tâches Kanban agrégées de l'entité."},"status":"OK","code":200,"body":"{\n  \"items\": [\n    {\n      \"id\": \"task_001\",\n      \"label\": \"Relancer opérateur\"\n    }\n  ],\n  \"total\": 1\n}"}]},{"name":"GET tasks.list","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/tasks","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","tasks"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Expose les tâches Kanban d'une opération donnée."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-list"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/tasks","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","tasks"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Expose les tâches Kanban d'une opération donnée."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"task_001\",\n    \"label\": \"Relancer opérateur\"\n  }\n]"}]},{"name":"GET tasks.get","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-get"}],"url":{"raw":"{{baseUrl}}/v1/tasks/:task_id","host":["{{baseUrl}}"],"path":["v1","tasks",":task_id"],"query":[],"variable":[{"key":"task_id","value":"11111111-aaaa-bbbb-cccc-222222222222","description":"Sample value for the task_id path parameter."}]},"description":"Retourne une tâche Kanban unitaire."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-get"}],"url":{"raw":"{{baseUrl}}/v1/tasks/:task_id","host":["{{baseUrl}}"],"path":["v1","tasks",":task_id"],"query":[],"variable":[{"key":"task_id","value":"11111111-aaaa-bbbb-cccc-222222222222","description":"Sample value for the task_id path parameter."}]},"description":"Retourne une tâche Kanban unitaire."},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-aaaa-bbbb-cccc-222222222222\",\n  \"label\": \"Relancer opérateur\"\n}"}]},{"name":"POST tasks.create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_tasks_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/tasks","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","tasks"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Crée une tâche Kanban pour une opération.\n\nPostman generates `idempotencyKey_tasks_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"titre\": \"Relancer opérateur\",\n  \"statut\": \"todo\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_tasks_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/operations/:operation_id/tasks","host":["{{baseUrl}}"],"path":["v1","operations",":operation_id","tasks"],"query":[],"variable":[{"key":"operation_id","value":"44444444-4444-4444-4444-444444444444","description":"Sample value for the operation_id path parameter."}]},"description":"Crée une tâche Kanban pour une opération.\n\nPostman generates `idempotencyKey_tasks_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"titre\": \"Relancer opérateur\",\n  \"statut\": \"todo\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"11111111-aaaa-bbbb-cccc-222222222223\",\n  \"titre\": \"Relancer opérateur\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_tasks_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"PUT tasks.update","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/:task_id","host":["{{baseUrl}}"],"path":["v1","tasks",":task_id"],"query":[],"variable":[{"key":"task_id","value":"11111111-aaaa-bbbb-cccc-222222222222","description":"Sample value for the task_id path parameter."}]},"description":"Met à jour une tâche Kanban.","body":{"mode":"raw","raw":"{\n  \"statut\": \"prep\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-update"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/:task_id","host":["{{baseUrl}}"],"path":["v1","tasks",":task_id"],"query":[],"variable":[{"key":"task_id","value":"11111111-aaaa-bbbb-cccc-222222222222","description":"Sample value for the task_id path parameter."}]},"description":"Met à jour une tâche Kanban.","body":{"mode":"raw","raw":"{\n  \"statut\": \"prep\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-aaaa-bbbb-cccc-222222222222\",\n  \"statut\": \"prep\"\n}"}]},{"name":"DELETE tasks.delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-delete"}],"url":{"raw":"{{baseUrl}}/v1/tasks/:task_id","host":["{{baseUrl}}"],"path":["v1","tasks",":task_id"],"query":[],"variable":[{"key":"task_id","value":"11111111-aaaa-bbbb-cccc-222222222222","description":"Sample value for the task_id path parameter."}]},"description":"Archive une tâche Kanban."},"response":[]},{"name":"PUT tasks.reorder","request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-reorder"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/reorder","host":["{{baseUrl}}"],"path":["v1","tasks","reorder"],"query":[]},"description":"Déplace une tâche dans le board Kanban.","body":{"mode":"raw","raw":"{\n  \"task_id\": \"11111111-aaaa-bbbb-cccc-222222222222\",\n  \"new_status\": \"in_progress\",\n  \"new_sort_order\": 2\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 200","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-reorder"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/reorder","host":["{{baseUrl}}"],"path":["v1","tasks","reorder"],"query":[]},"description":"Déplace une tâche dans le board Kanban.","body":{"mode":"raw","raw":"{\n  \"task_id\": \"11111111-aaaa-bbbb-cccc-222222222222\",\n  \"new_status\": \"in_progress\",\n  \"new_sort_order\": 2\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":200,"body":"{\n  \"id\": \"11111111-aaaa-bbbb-cccc-222222222222\",\n  \"statut\": \"in_progress\"\n}"}]},{"name":"GET tasks.labels","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-labels"}],"url":{"raw":"{{baseUrl}}/v1/tasks/labels","host":["{{baseUrl}}"],"path":["v1","tasks","labels"],"query":[]},"description":"Expose les labels Kanban disponibles."},"response":[{"name":"Sample 200","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-labels"}],"url":{"raw":"{{baseUrl}}/v1/tasks/labels","host":["{{baseUrl}}"],"path":["v1","tasks","labels"],"query":[]},"description":"Expose les labels Kanban disponibles."},"status":"OK","code":200,"body":"[\n  {\n    \"id\": \"label_001\",\n    \"name\": \"Urgent\"\n  }\n]"}]},{"name":"POST tasks.labels-create","request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-labels-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_tasks_labels_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/labels","host":["{{baseUrl}}"],"path":["v1","tasks","labels"],"query":[]},"description":"Crée un label Kanban.\n\nPostman generates `idempotencyKey_tasks_labels_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Urgent\",\n  \"color\": \"#ef4444\"\n}","options":{"raw":{"language":"json"}}}},"response":[{"name":"Sample 201","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-labels-create"},{"key":"Idempotency-Key","value":"{{idempotencyKey_tasks_labels_create}}"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"{{baseUrl}}/v1/tasks/labels","host":["{{baseUrl}}"],"path":["v1","tasks","labels"],"query":[]},"description":"Crée un label Kanban.\n\nPostman generates `idempotencyKey_tasks_labels_create` on first send and reuses it for retries of the same logical write. Clear that collection variable before sending a different logical write.","body":{"mode":"raw","raw":"{\n  \"name\": \"Urgent\",\n  \"color\": \"#ef4444\"\n}","options":{"raw":{"language":"json"}}}},"status":"OK","code":201,"body":"{\n  \"id\": \"label_001\",\n  \"name\": \"Urgent\"\n}"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const keyName = 'idempotencyKey_tasks_labels_create';","if (!pm.collectionVariables.get(keyName)) {","  const generatedKey = `marko-${pm.variables.replaceIn('{{$guid}}')}`;","  pm.collectionVariables.set(keyName, generatedKey);","}"]}}]},{"name":"DELETE tasks.labels-delete","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{bearerToken}}"},{"key":"X-Request-ID","value":"marko-tasks-labels-delete"}],"url":{"raw":"{{baseUrl}}/v1/tasks/labels/:label_id","host":["{{baseUrl}}"],"path":["v1","tasks","labels",":label_id"],"query":[],"variable":[{"key":"label_id","value":"22222222-bbbb-cccc-dddd-333333333333","description":"Sample value for the label_id path parameter."}]},"description":"Supprime un label Kanban."},"response":[]}]}