PageSourceSearch

https://docs.clientxcms.com/assets/js/44a7b955.612df94a.js

js clientxcms.com collected 2026-10-07 18:19:47 UTC 6,957 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdocs_clientxcms_com=self.webpackChunkdocs_clientxcms_com||[]).push([[298],{49145:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"extensions/addons/chorus-pro","title":"Chorus Pro","description":"The Chorus Pro addon sends invoices intended for French public-sector entities through the PISTE API. It is the public-sector provider used alongside the main Factur-X and e-reporting provider.","source":"@site/docs/extensions/addons/chorus-pro.md","sourceDirName":"extensions/addons","slug":"/extensions/addons/chorus-pro","permalink":"/extensions/addons/chorus-pro","draft":false,"unlisted":false,"editUrl":"https://github.com/ClientXCMS/docs.clientxcms.com/blob/V2/docs/extensions/addons/chorus-pro.md","tags":[],"version":"current","frontMatter":{"translated":true},"sidebar":"defaultSidebar","previous":{"title":"Business Lookup France","permalink":"/extensions/addons/business-lookup-fr"},"next":{"title":"Cloudflare Subdomains","permalink":"/extensions/addons/cloudflaresubdomains"}}');var i=t(74848),o=t(28453);const s={translated:!0},c="Chorus Pro",d={},l=[{value:"Obtain the PISTE credentials",id:"obtain-the-piste-credentials",level:2},{value:"Configure Chorus Pro",id:"configure-chorus-pro",level:2},{value:"Select the public-sector provider",id:"select-the-public-sector-provider",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"chorus-pro",children:"Chorus Pro"})}),"\n",(0,i.jsx)(n.p,{children:"The Chorus Pro addon sends invoices intended for French public-sector entities through the PISTE API. It is the public-sector provider used alongside the main Factur-X and e-reporting provider."}),"\n",(0,i.jsx)(n.admonition,{title:"Addon required",type:"info",children:(0,i.jsx)(n.p,{children:"Enable the Chorus Pro addon before configuring the connector."})}),"\n",(0,i.jsx)(n.h2,{id:"obtain-the-piste-credentials",children:"Obtain the PISTE credentials"}),"\n",(0,i.jsx)(n.p,{children:"Chorus Pro uses OAuth 2.0 through PISTE and a Chorus Pro technical account."}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Create or sign in to your account on the ",(0,i.jsx)(n.a,{href:"https://piste.gouv.fr/",children:"PISTE portal"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"Create an application and subscribe it to the Chorus Pro API, first in the sandbox if you want to test the integration."}),"\n",(0,i.jsxs)(n.li,{children:["In the application, generate an API key and copy the ",(0,i.jsx)(n.strong,{children:"Client ID"})," and ",(0,i.jsx)(n.strong,{children:"Client Secret"}),"."]}),"\n",(0,i.jsx)(n.li,{children:"In Chorus Pro, declare a PISTE API connection for the relevant structure and application."}),"\n",(0,i.jsx)(n.li,{children:"Create a Chorus Pro technical account attached to that structure. Keep its login and password available in the format requested by ClientXCMS."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Production and qualification are separate environments. Create and approve the appropriate PISTE application and Chorus Pro connection for each environment."}),"\n",(0,i.jsx)(n.admonition,{title:"Secrets",type:"warning",children:(0,i.jsx)(n.p,{children:"Store the client secret and technical-account credentials securely. Never include them in screenshots, support messages, or version control."})}),"\n",(0,i.jsx)(n.h2,{id:"configure-chorus-pro",children:"Configure Chorus Pro"}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"Settings > Billing > Chorus Pro electronic invoicing"})," and complete:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Environment"}),": qualification for tests or production for real invoices;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"PISTE Client ID"})," and ",(0,i.jsx)(n.strong,{children:"PISTE Client Secret"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Chorus Pro technical account"}),";"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Chorus Pro API URL"})," and ",(0,i.jsx)(n.strong,{children:"PISTE OAuth URL"}),": keep the values matching the selected environment;"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"HTTP timeout"}),": maximum time allowed for an API request."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Enable Chorus Pro, save, then click ",(0,i.jsx)(n.strong,{children:"Test connection"}),"."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Chorus Pro connector settings",src:t(76084).A+"",width:"2502",height:"614"})}),"\n",(0,i.jsx)(n.h2,{id:"select-the-public-sector-provider",children:"Select the public-sector provider"}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"Settings > Billing > Billing > Factur-X and e-reporting"}),":"]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:"Enable electronic invoicing for new documents when you are ready."}),"\n",(0,i.jsxs)(n.li,{children:["Select the main ",(0,i.jsx)(n.strong,{children:"Active provider"})," separately: ",(0,i.jsx)(n.code,{children:"LOCAL"}),", ",(0,i.jsx)(n.code,{children:"QONTO"}),", or ",(0,i.jsx)(n.code,{children:"PENNYLANE"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Under ",(0,i.jsx)(n.strong,{children:"Public-sector provider"}),", select ",(0,i.jsx)(n.code,{children:"CHORUS-PRO"}),". Select ",(0,i.jsx)(n.code,{children:"LOCAL"})," if ClientXCMS must not transmit public-sector invoices through Chorus Pro."]}),"\n",(0,i.jsx)(n.li,{children:"Save the billing settings."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Selecting Chorus Pro as the public-sector provider",src:t(76110).A+"",width:"2457",height:"187"})}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Validate the complete workflow in qualification before enabling production: authentication, recipient identification, invoice submission, and returned status."})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},76084:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/config_addon-8cabafa3e4eb039a064efe7b56f212da.png"},76110:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/config_driver-daaed1740ebff964abcb79dfa0ad5d87.png"},28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var r=t(96540);const i={},o=r.createContext(i);function s(e){const n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.