[{"data":1,"prerenderedAt":542},["ShallowReactive",2],{"page:\u002Fintegration\u002Fmetadonnees":3},{"id":4,"title":5,"body":6,"description":532,"download":533,"extension":534,"meta":535,"navigation":536,"path":537,"section":538,"seo":539,"sourceTitle":533,"sourceUpdatedAt":533,"sourceUrl":533,"stem":540,"version":533,"__hash__":541},"docs\u002Fintegration\u002Fmetadonnees.md","Métadonnées de suivi",{"type":7,"value":8,"toc":524},"minimark",[9,24,29,37,80,93,103,107,131,230,244,248,254,336,339,343,369,381,416,420,483,502,506,517,520],[10,11,12,13,17,18,23],"p",{},"Les métadonnées associent à chaque traitement des informations de suivi fournies par votre logiciel métier. Elles sont conservées sur le ",[14,15,16],"strong",{},"run"," et héritées par ses sous-workflows. Elles sont distinctes de l’entrée métier et du ",[19,20,22],"a",{"href":21},"\u002Fformat\u002Fv1-2\u002Fspecification\u002Fintroduction","JSON CDJ Connect 1.2"," : ne les ajoutez pas au schéma métier.",[25,26,28],"h2",{"id":27},"identifier-le-client","Identifier le client",[10,30,31,32,36],{},"Le workflow d’intégration accepte la métadonnée facultative ",[33,34,35],"code",{},"client_id"," : l’identifiant du client pour lequel votre logiciel métier soumet la demande. Un appel sans métadonnées reste valide.",[38,39,40,59],"table",{},[41,42,43],"thead",{},[44,45,46,50,53,56],"tr",{},[47,48,49],"th",{},"Clé",[47,51,52],{},"Type",[47,54,55],{},"Obligatoire",[47,57,58],{},"Exemple",[60,61,62],"tbody",{},[44,63,64,69,72,75],{},[65,66,67],"td",{},[33,68,35],{},[65,70,71],{},"Chaîne de caractères",[65,73,74],{},"Non",[65,76,77],{},[33,78,79],{},"\"0042\"",[10,81,82,85,86,88,89,92],{},[14,83,84],{},"Conservez les zéros initiaux."," ",[33,87,79],{}," et ",[33,90,91],{},"\"42\""," sont deux valeurs différentes lors d’une recherche exacte. Ne convertissez pas cet identifiant en nombre.",[10,94,95,96,99,100,102],{},"Les métadonnées passent par le champ réservé ",[33,97,98],{},"_raydocs.metadata",". Un ",[33,101,35],{}," placé directement dans le payload métier n’est pas automatiquement une métadonnée du run.",[25,104,106],{"id":105},"transmettre-avec-des-fichiers","Transmettre avec des fichiers",[10,108,109,110,114,115,118,119,122,123,126,127,130],{},"Pour l’",[19,111,113],{"href":112},"\u002Fintegration\u002Fenvoyer-les-documents","envoi des documents",", ajoutez un champ texte ",[33,116,117],{},"_raydocs"," contenant le JSON ci-dessous au même ",[33,120,121],{},"multipart\u002Fform-data",". Répétez ",[33,124,125],{},"files[]"," pour chaque fichier. ",[33,128,129],{},"--form-string"," transmet le JSON comme du texte.",[132,133,138],"pre",{"className":134,"code":135,"language":136,"meta":137,"style":137},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","curl -X POST \"https:\u002F\u002Fapi.raydocs.com\u002Fwebhooks\u002Fworkflows\u002F{WEBHOOK_PUBLIC_UUID}\" \\\n  -H \"Authorization: Bearer {RAYDOCS_API_TOKEN}\" \\\n  -H \"Accept: application\u002Fjson\" \\\n  -F \"files[]=@.\u002Fdocument.pdf;type=application\u002Fpdf\" \\\n  --form-string '_raydocs={\"metadata\":{\"client_id\":\"0042\"}}'\n","bash","",[33,139,140,171,186,200,215],{"__ignoreMap":137},[141,142,145,149,153,157,161,164,167],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"sbgvK","curl",[141,150,152],{"class":151},"stzsN"," -X",[141,154,156],{"class":155},"s_sjI"," POST",[141,158,160],{"class":159},"sjJ54"," \"",[141,162,163],{"class":155},"https:\u002F\u002Fapi.raydocs.com\u002Fwebhooks\u002Fworkflows\u002F{WEBHOOK_PUBLIC_UUID}",[141,165,166],{"class":159},"\"",[141,168,170],{"class":169},"s_hVV"," \\\n",[141,172,174,177,179,182,184],{"class":143,"line":173},2,[141,175,176],{"class":151},"  -H",[141,178,160],{"class":159},[141,180,181],{"class":155},"Authorization: Bearer {RAYDOCS_API_TOKEN}",[141,183,166],{"class":159},[141,185,170],{"class":169},[141,187,189,191,193,196,198],{"class":143,"line":188},3,[141,190,176],{"class":151},[141,192,160],{"class":159},[141,194,195],{"class":155},"Accept: application\u002Fjson",[141,197,166],{"class":159},[141,199,170],{"class":169},[141,201,203,206,208,211,213],{"class":143,"line":202},4,[141,204,205],{"class":151},"  -F",[141,207,160],{"class":159},[141,209,210],{"class":155},"files[]=@.\u002Fdocument.pdf;type=application\u002Fpdf",[141,212,166],{"class":159},[141,214,170],{"class":169},[141,216,218,221,224,227],{"class":143,"line":217},5,[141,219,220],{"class":151},"  --form-string",[141,222,223],{"class":159}," '",[141,225,226],{"class":155},"_raydocs={\"metadata\":{\"client_id\":\"0042\"}}",[141,228,229],{"class":159},"'\n",[10,231,232,233,236,237,243],{},"Ne fixez pas manuellement le ",[33,234,235],{},"Content-Type"," multipart : laissez votre client générer la boundary. Vous pouvez ajouter dans le même envoi le champ indépendant et facultatif ",[19,238,240],{"href":239},"\u002Fintegration\u002Fnotifications",[33,241,242],{},"notification_url",".",[25,245,247],{"id":246},"transmettre-dans-un-corps-json","Transmettre dans un corps JSON",[10,249,250,251,253],{},"Pour une requête au format JSON, ",[33,252,117],{}," est un objet, et non une chaîne JSON sérialisée. L’extrait suivant montre uniquement l’enveloppe de métadonnées ; il ne remplace pas les fichiers nécessaires à l’analyse des documents ni les autres entrées attendues par le workflow.",[132,255,259],{"className":256,"code":257,"language":258,"meta":137,"style":137},"language-json shiki shiki-themes material-theme-lighter github-light github-dark","{\n  \"_raydocs\": {\n    \"metadata\": {\n      \"client_id\": \"0042\"\n    }\n  }\n}\n","json",[33,260,261,267,284,299,319,324,330],{"__ignoreMap":137},[141,262,263],{"class":143,"line":144},[141,264,266],{"class":265},"sP7_E","{\n",[141,268,269,273,276,278,281],{"class":143,"line":173},[141,270,272],{"class":271},"s39Yj","  \"",[141,274,117],{"class":275},"sseR_",[141,277,166],{"class":271},[141,279,280],{"class":265},":",[141,282,283],{"class":265}," {\n",[141,285,286,289,293,295,297],{"class":143,"line":188},[141,287,288],{"class":271},"    \"",[141,290,292],{"class":291},"sZMiF","metadata",[141,294,166],{"class":271},[141,296,280],{"class":265},[141,298,283],{"class":265},[141,300,301,304,307,309,311,313,316],{"class":143,"line":202},[141,302,303],{"class":271},"      \"",[141,305,35],{"class":306},"srdBf",[141,308,166],{"class":271},[141,310,280],{"class":265},[141,312,160],{"class":159},[141,314,315],{"class":155},"0042",[141,317,318],{"class":159},"\"\n",[141,320,321],{"class":143,"line":217},[141,322,323],{"class":265},"    }\n",[141,325,327],{"class":143,"line":326},6,[141,328,329],{"class":265},"  }\n",[141,331,333],{"class":143,"line":332},7,[141,334,335],{"class":265},"}\n",[10,337,338],{},"L’enveloppe réservée est séparée des données métier avant le traitement. Ce fragment est un exemple de transport Raydocs, pas un lot CDJ Connect complet.",[25,340,342],{"id":341},"suivre-et-retrouver-les-traitements","Suivre et retrouver les traitements",[10,344,345,346,348,349,352,353,355,356,360,361,88,365,243],{},"Conservez l’association entre votre demande, son ",[33,347,35],{}," et le ",[33,350,351],{},"RUN_ID"," retourné à l’envoi. Le ",[33,354,351],{}," reste l’identifiant à utiliser pour ",[19,357,359],{"href":358},"\u002Fintegration\u002Fconsulter-le-statut","consulter le statut",", ",[19,362,364],{"href":363},"\u002Fintegration\u002Frecuperer-le-resultat","récupérer le résultat",[19,366,368],{"href":367},"\u002Fintegration\u002Fobtenir-un-lien","renouveler un lien de téléchargement",[10,370,371,372,374,375,377,378,380],{},"Les métadonnées permettent de retrouver les runs par filtre exact dans Raydocs : une recherche de ",[33,373,35],{}," égal à ",[33,376,79],{}," ne sélectionne pas ",[33,379,91],{},". Les sous-workflows héritent des métadonnées du parent, ce qui conserve le contexte client pendant le traitement.",[10,382,383,384,388,389,400,401,403,404,403,406,409,410,412,413,415],{},"La ",[19,385,387],{"href":386},"\u002Fintegration\u002Fnotifications#enveloppe-re%C3%A7ue","notification webhook"," conserve son enveloppe ",[14,390,391,360,394,360,397],{},[33,392,393],{},"run_id",[33,395,396],{},"status",[33,398,399],{},"output",", en succès comme en échec. Elle n’ajoute automatiquement ni ",[33,402,35],{},", ni ",[33,405,292],{},[33,407,408],{},"event_id",". Retrouvez le client à partir de l’association conservée avec le ",[33,411,393],{}," parent. Contrairement aux métadonnées, ",[33,414,242],{}," n’est pas héritée par les sous-workflows : seul le parent notifie.",[25,417,419],{"id":418},"limites-et-validation","Limites et validation",[38,421,422,432],{},[41,423,424],{},[44,425,426,429],{},[47,427,428],{},"Élément",[47,430,431],{},"Limite",[60,433,434,444,452,467,475],{},[44,435,436,441],{},[65,437,438,439],{},"Structure de ",[33,440,292],{},[65,442,443],{},"Objet plat de chaînes, sans objet ni tableau imbriqué.",[44,445,446,449],{},[65,447,448],{},"Nombre de clés",[65,450,451],{},"20 maximum.",[44,453,454,457],{},[65,455,456],{},"Nom d’une clé",[65,458,459,460,88,463,466],{},"Commence par une lettre ; lettres, chiffres, ",[33,461,462],{},"_",[33,464,465],{},"-"," uniquement ; 64 caractères maximum.",[44,468,469,472],{},[65,470,471],{},"Valeur",[65,473,474],{},"Chaîne de 500 caractères maximum.",[44,476,477,480],{},[65,478,479],{},"Taille du JSON de métadonnées",[65,481,482],{},"8 Kio maximum.",[10,484,485,486,493,494,496,497,501],{},"Des métadonnées invalides provoquent une réponse ",[14,487,488,489,492],{},"HTTP ",[33,490,491],{},"422"," avant la création du run",". Aucun ",[33,495,351],{}," ni callback de fin de traitement n’est alors produit. Corrigez la requête avant de la soumettre de nouveau ; les ",[19,498,500],{"href":499},"\u002Fintegration\u002Fbonnes-pratiques","bonnes pratiques"," détaillent la gestion des erreurs.",[25,503,505],{"id":504},"identité-et-confidentialité","Identité et confidentialité",[10,507,508,509,512,513,243],{},"Les métadonnées sont déclarées par votre logiciel métier. Elles servent au suivi et à la recherche ; ",[14,510,511],{},"elles ne prouvent pas l’identité du client ou de l’appelant et ne donnent aucun droit d’accès",". La provenance utilisateur et token est déterminée séparément côté serveur, à partir de l’",[19,514,516],{"href":515},"\u002Fintegration\u002Fauthentification","authentification",[10,518,519],{},"N’y transmettez aucun secret : ni token API, ni mot de passe, ni URL signée de notification ou de téléchargement. Utilisez un identifiant client stable et limitez les données aux besoins du suivi.",[521,522,523],"style",{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sseR_, html code.shiki .sseR_{--shiki-light:#9C3EDA;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":137,"searchDepth":173,"depth":173,"links":525},[526,527,528,529,530,531],{"id":27,"depth":173,"text":28},{"id":105,"depth":173,"text":106},{"id":246,"depth":173,"text":247},{"id":341,"depth":173,"text":342},{"id":418,"depth":173,"text":419},{"id":504,"depth":173,"text":505},"Associer un identifiant client à une demande et retrouver ses traitements dans Raydocs.",null,"md",{},true,"\u002Fintegration\u002Fmetadonnees","Intégration au logiciel métier",{"title":5,"description":532},"integration\u002Fmetadonnees","PVK-cPNNdba9NYgq7NHGTX1jbmheS7v2uPCB8BlbdxM",1791469624841]