diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml new file mode 100644 index 000000000..84389ae8b --- /dev/null +++ b/.github/workflows/ci_cd.yml @@ -0,0 +1,201 @@ +env: + CI: true + COVERAGE: true + +name: CI - CD +on: [push] +jobs: + security: + name: Brakeman + if: "${{ github.actor != 'dependabot[bot]' }}" + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2.1 + + - name: Brakeman + uses: reviewdog/action-brakeman@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + cache-version: 321 + + - name: Run RuboCop + run: bundle exec rubocop --parallel + + tests: + name: Tests + runs-on: ubuntu-latest + timeout-minutes: 30 + services: + postgres: + image: postgres:latest + env: + POSTGRES_USER: admin_apientreprise + POSTGRES_PASSWORD: wow*verysecret + POSTGRES_DB: admin_apientreprise_test + POSTGRES_PORT: 5432 + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + redis: + image: redis + ports: ["6379:6379"] + options: --entrypoint redis-server + + steps: + - name: Dump Github context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + cache-version: 322 + + - name: Setup Nodejs + uses: actions/setup-node@v3 + + - name: Install mjml dependency + run: npm install mjml + + - name: Install postgres client #and imagemagick + run: sudo apt-get install libpq-dev #imagemagick + + - name: Create database users + env: + POSTGRES_USER: admin_apientreprise + POSTGRES_DB: admin_apientreprise_test + PGPASSWORD: wow*verysecret + run: | + psql -h localhost -U ${{ env.POSTGRES_USER }} -d ${{ env.POSTGRES_DB }} -f `pwd`/postgresql_setup.txt + + - name: Create database + run: bundle exec rails db:create db:schema:load RAILS_ENV=test + + - name: Run tests + run: bundle exec rspec + + - uses: joshmfrankel/simplecov-check-action@main + if: "${{ github.actor != 'dependabot[bot]' }}" + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + minimum_suite_coverage: 95 + + merge-with-master: + name: Merge develop with master + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/develop' + needs: + - security + - lint + - tests + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Import GPG key to sign master push + if: github.ref == 'refs/heads/develop' + id: import_gpg + uses: crazy-max/ghaction-import-gpg@v6 + with: + gpg_private_key: ${{ secrets.GPG_SECRET_KEY }} + passphrase: ${{ secrets.GPG_PASSPHRASE }} + git_user_signingkey: true + git_commit_gpgsign: true + + - name: Force push develop to master + if: github.ref == 'refs/heads/develop' + run: | + git reset --hard && \ + git push --force origin develop:master && \ + git fetch && \ + [[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow + exit 0 + + continuous-deployment-staging: + name: Continuous deployment on staging + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/develop' + needs: + - security + - lint + - tests + - merge-with-master + timeout-minutes: 10 + strategy: + matrix: + host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4] + fail-fast: false + environment: staging + env: + DEPLOY_HTTPS_LOGIN: ${{ secrets.DEPLOY_HTTPS_LOGIN }} + DEPLOY_HTTPS_PASSWORD: ${{ secrets.DEPLOY_HTTPS_PASSWORD }} + DEPLOY_HTTPS_REQUEST_URL: ${{ vars.DEPLOY_HTTPS_REQUEST_URL }} + DEPLOY_HTTPS_RESPONSE_URL: ${{ vars.DEPLOY_HTTPS_RESPONSE_URL }} + DEPLOY_HOST: host_${{ matrix.host }} + DEPLOY_APP: admin_apientreprise_staging + steps: + - name: Download and run deploy script + shell: bash + run: | + git clone https://github.com/etalab/api-entreprise-integration + cd api-entreprise-integration + ./deploy-parteprise.sh + + continuous-deployment-production: + name: Continuous deployment on production + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/develop' + needs: + - security + - lint + - tests + - merge-with-master + - continuous-deployment-staging + timeout-minutes: 20 + strategy: + matrix: + host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4] + deploy_env: [production] + fail-fast: false + environment: production + env: + DEPLOY_HTTPS_LOGIN: ${{ secrets.DEPLOY_HTTPS_LOGIN }} + DEPLOY_HTTPS_PASSWORD: ${{ secrets.DEPLOY_HTTPS_PASSWORD }} + DEPLOY_HTTPS_REQUEST_URL: ${{ vars.DEPLOY_HTTPS_REQUEST_URL }} + DEPLOY_HTTPS_RESPONSE_URL: ${{ vars.DEPLOY_HTTPS_RESPONSE_URL }} + DEPLOY_HOST: host_${{ matrix.host }} + DEPLOY_APP: admin_apientreprise_${{ matrix.deploy_env }} + steps: + - name: Download and run deploy script + shell: bash + run: | + git clone https://github.com/etalab/api-entreprise-integration + cd api-entreprise-integration + ./deploy-parteprise.sh diff --git a/.github/workflows/https-deploy-production.yaml b/.github/workflows/https-deploy-production.yaml index 72c8a454c..f6d703542 100644 --- a/.github/workflows/https-deploy-production.yaml +++ b/.github/workflows/https-deploy-production.yaml @@ -9,7 +9,7 @@ jobs: timeout-minutes: 20 strategy: matrix: - host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4, watchdoge5] + host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4] deploy_env: [staging, production] fail-fast: false environment: production diff --git a/.github/workflows/https-deploy-sandbox.yaml b/.github/workflows/https-deploy-sandbox.yaml index d2fbb70e2..83904b94b 100644 --- a/.github/workflows/https-deploy-sandbox.yaml +++ b/.github/workflows/https-deploy-sandbox.yaml @@ -11,7 +11,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4, watchdoge5] + host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4] fail-fast: false environment: sandbox env: diff --git a/.github/workflows/https-deploy-staging.yaml b/.github/workflows/https-deploy-staging.yaml index 5de4b627a..6574b9add 100644 --- a/.github/workflows/https-deploy-staging.yaml +++ b/.github/workflows/https-deploy-staging.yaml @@ -9,7 +9,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4, watchdoge5] + host: [watchdoge1, watchdoge2, watchdoge3, watchdoge4] fail-fast: false environment: staging env: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index cbdd39819..000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: RuboCop - -on: [push] - -jobs: - lint: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - bundler-cache: true - cache-version: 321 - - - name: Run RuboCop - run: bundle exec rubocop --parallel diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml deleted file mode 100644 index f799586ce..000000000 --- a/.github/workflows/security.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Security - -on: [push] - -jobs: - security: - name: Brakeman (Static security) - if: "${{ github.actor != 'dependabot[bot]' }}" - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.2.1 - - - name: Brakeman - uses: reviewdog/action-brakeman@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index dcc848bf5..000000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,94 +0,0 @@ -env: - CI: true - COVERAGE: true - -name: Tests + merge develop->master -on: [push] -jobs: - test: - name: Tests (RSpec) - runs-on: ubuntu-latest - timeout-minutes: 30 - services: - postgres: - image: postgres:latest - env: - POSTGRES_USER: admin_apientreprise - POSTGRES_PASSWORD: wow*verysecret - POSTGRES_DB: admin_apientreprise_test - POSTGRES_PORT: 5432 - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - redis: - image: redis - ports: ["6379:6379"] - options: --entrypoint redis-server - - steps: - - name: Dump Github context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup ruby - uses: ruby/setup-ruby@v1 - with: - bundler-cache: true - cache-version: 322 - - - name: Setup Nodejs - uses: actions/setup-node@v3 - - - name: Install mjml dependency - run: npm install mjml - - - name: Install postgres client #and imagemagick - run: sudo apt-get install libpq-dev #imagemagick - - - name: Create database users - env: - POSTGRES_USER: admin_apientreprise - POSTGRES_DB: admin_apientreprise_test - PGPASSWORD: wow*verysecret - run: | - psql -h localhost -U ${{ env.POSTGRES_USER }} -d ${{ env.POSTGRES_DB }} -f `pwd`/postgresql_setup.txt - - - name: Create database - run: bundle exec rails db:create db:schema:load RAILS_ENV=test - - - name: Run tests - run: bundle exec rspec - - - uses: joshmfrankel/simplecov-check-action@main - if: "${{ github.actor != 'dependabot[bot]' }}" - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - minimum_suite_coverage: 95 - - - name: Import GPG key to sign master push - if: github.ref == 'refs/heads/develop' - id: import_gpg - uses: crazy-max/ghaction-import-gpg@v6 - with: - gpg_private_key: ${{ secrets.GPG_SECRET_KEY }} - passphrase: ${{ secrets.GPG_PASSPHRASE }} - git_user_signingkey: true - git_commit_gpgsign: true - - - name: Force push develop to master - if: github.ref == 'refs/heads/develop' - run: | - git reset --hard && \ - git push --force origin develop:master && \ - git fetch && \ - [[ ! -s \"$(git rev-parse --git-dir)/shallow\" ]] || git fetch --unshallow - exit 0 diff --git a/.rubocop.yml b/.rubocop.yml index 41ffc3e03..fad8c07b2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -93,6 +93,10 @@ Metrics/MethodLength: RSpec/NestedGroups: Enabled: false +RSpec/SpecFilePathFormat: + Exclude: + - "spec/**/*hubee*" + Naming/VariableNumber: Enabled: false diff --git a/.ruby-version b/.ruby-version index 619b53766..9c25013db 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.3 +3.3.6 diff --git a/Gemfile b/Gemfile index 7ca3b51a6..6183661a7 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) do |repo_name| end # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem 'rails', '~> 7.1' +gem 'rails', '~> 8.0' # Use postgresql as the database for Active Record gem 'pg' # Use Puma as the app server @@ -40,7 +40,7 @@ gem 'sitemap_generator' gem 'pastel' -gem 'rails-i18n', '~> 7.0.9' +gem 'rails-i18n' # Use Active Storage variant # gem 'image_processing', '~> 1.2' @@ -76,6 +76,13 @@ gem 'ransack' gem 'wicked' +gem 'rest-client' +gem 'faraday' +gem 'faraday-gzip' +gem 'faraday-net_http' +gem 'faraday-retry' +gem 'faraday-encoding' + group :development, :test do gem 'awesome_print' gem 'brakeman' @@ -99,10 +106,10 @@ group :development do # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md gem 'rack-mini-profiler', '~> 3.3' gem 'rubocop', require: false - gem 'rubocop-rails' - gem 'rubocop-rspec' gem 'rubocop-capybara' gem 'rubocop-factory_bot' + gem 'rubocop-rails' + gem 'rubocop-rspec' gem 'rubocop-rspec_rails' gem 'better_errors' @@ -114,7 +121,7 @@ group :test do gem 'cuprite' gem 'rspec-collection_matchers' gem 'rspec-its' - gem 'rspec-rails', '6.1.3' + gem 'rspec-rails', '7.1.0' gem 'rspec-retry' gem 'shoulda-matchers' gem 'simplecov', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 8dab8384f..239305ec2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,93 +1,90 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) + actioncable (8.0.0) + actionpack (= 8.0.0) + activesupport (= 8.0.0) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.3.4) - actionpack (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (8.0.0) + actionpack (= 8.0.0) + activejob (= 8.0.0) + activerecord (= 8.0.0) + activestorage (= 8.0.0) + activesupport (= 8.0.0) + mail (>= 2.8.0) + actionmailer (8.0.0) + actionpack (= 8.0.0) + actionview (= 8.0.0) + activejob (= 8.0.0) + activesupport (= 8.0.0) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) + actionpack (8.0.0) + actionview (= 8.0.0) + activesupport (= 8.0.0) nokogiri (>= 1.8.5) - racc rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.3.4) - actionpack (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + useragent (~> 0.16) + actiontext (8.0.0) + actionpack (= 8.0.0) + activerecord (= 8.0.0) + activestorage (= 8.0.0) + activesupport (= 8.0.0) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) + actionview (8.0.0) + activesupport (= 8.0.0) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.3.4) - activesupport (= 7.1.3.4) + activejob (8.0.0) + activesupport (= 8.0.0) globalid (>= 0.3.6) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) + activemodel (8.0.0) + activesupport (= 8.0.0) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) + activerecord (8.0.0) + activemodel (= 8.0.0) + activesupport (= 8.0.0) timeout (>= 0.4.0) - activestorage (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activesupport (= 7.1.3.4) + activestorage (8.0.0) + actionpack (= 8.0.0) + activejob (= 8.0.0) + activerecord (= 8.0.0) + activesupport (= 8.0.0) marcel (~> 1.0) - activesupport (7.1.3.4) + activesupport (8.0.0) base64 + benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - algolia (2.3.4) - faraday (>= 0.15, < 3) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + algolia (3.5.4) + base64 (>= 0.2.0, < 1) + faraday (>= 1.0.1, < 3.0) faraday-net_http_persistent (>= 0.15, < 3) - multi_json (~> 1.0) net-http-persistent - algoliasearch-rails (2.3.2) - algolia (< 3.0.0) + algoliasearch-rails (3.0.0) + algolia (>= 3.5.2) json (>= 1.5.1) anchored (1.1.0) ansi (1.5.0) @@ -96,6 +93,7 @@ GEM awesome_print (1.9.2) base64 (0.2.0) bcrypt (3.1.20) + benchmark (0.4.0) better_errors (2.10.1) erubi (>= 1.0.0) rack (>= 0.9.0) @@ -104,12 +102,12 @@ GEM bindex (0.8.1) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) - bootsnap (1.18.3) + bootsnap (1.18.4) msgpack (~> 1.2) - brakeman (6.1.2) + brakeman (6.2.2) racc builder (3.3.0) - bullet (7.2.0) + bullet (8.0.0) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) byebug (11.1.3) @@ -125,7 +123,7 @@ GEM chronic (0.10.2) coderay (1.1.3) colorize (1.1.0) - concurrent-ruby (1.3.3) + concurrent-ruby (1.3.4) connection_pool (2.4.1) crack (1.0.0) bigdecimal @@ -134,10 +132,10 @@ GEM cuprite (0.15.1) capybara (~> 3.0) ferrum (~> 0.15.0) - date (3.3.4) + date (3.4.0) debug_inspector (1.2.0) diff-lcs (1.5.1) - docile (1.4.0) + docile (1.4.1) domain_name (0.6.20240107) draper (4.0.2) actionpack (>= 5.0) @@ -150,18 +148,27 @@ GEM erubi (1.13.0) et-orbi (1.2.11) tzinfo - factory_bot (6.4.5) + factory_bot (6.5.0) activesupport (>= 5.0.0) - factory_bot_rails (6.4.3) - factory_bot (~> 6.4) + factory_bot_rails (6.4.4) + factory_bot (~> 6.5) railties (>= 5.0.0) - faraday (2.9.0) - faraday-net_http (>= 2.0, < 3.2) - faraday-net_http (3.1.0) + faraday (2.12.0) + faraday-net_http (>= 2.0, < 3.4) + json + logger + faraday-encoding (0.0.6) + faraday + faraday-gzip (2.0.1) + faraday (>= 1.0) + zlib (~> 3.0) + faraday-net_http (3.3.0) net-http - faraday-net_http_persistent (2.1.0) + faraday-net_http_persistent (2.3.0) faraday (~> 2.5) - net-http-persistent (~> 4.0) + net-http-persistent (>= 4.0.4, < 5) + faraday-retry (2.2.1) + faraday (~> 2.0) ferrum (0.15) addressable (~> 2.5) concurrent-ruby (~> 1.1) @@ -169,14 +176,14 @@ GEM websocket-driver (~> 0.7) ffi (1.16.3) formatador (1.1.0) - fugit (1.11.0) + fugit (1.11.1) et-orbi (~> 1, >= 1.2.11) raabro (~> 1.4) gaffe (1.2.0) rails (>= 4.0.0) globalid (1.2.1) activesupport (>= 6.1) - good_job (3.99.0) + good_job (3.99.1) activejob (>= 6.0.0) activerecord (>= 6.0.0) concurrent-ruby (>= 1.0.2) @@ -197,13 +204,13 @@ GEM guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) - hashdiff (1.1.0) + hashdiff (1.1.1) hashie (5.0.0) highline (3.0.1) http-accept (1.7.0) - http-cookie (1.0.5) + http-cookie (1.0.7) domain_name (~> 0.5) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) i18n-tasks (1.0.14) activesupport (>= 4.0.2) @@ -218,11 +225,11 @@ GEM interactor (3.1.2) io-console (0.7.2) ip_anonymizer (0.3.0) - irb (1.14.0) + irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.7.2) - jwt (2.8.2) + json (2.8.2) + jwt (2.9.3) base64 kaminari (1.2.2) activesupport (>= 4.1.0) @@ -244,10 +251,11 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + logger (1.6.1) logstasher (2.1.5) activesupport (>= 5.2) request_store - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) lumberjack (1.2.9) @@ -256,45 +264,42 @@ GEM net-imap net-pop net-smtp - mailjet (1.7.11) + mailjet (1.8.0) activesupport (>= 5.0.0) + faraday (~> 2.1) rack (>= 1.4.0) - rest-client (>= 2.1.0) yajl-ruby marcel (1.0.4) matrix (0.4.2) method_source (1.1.0) mime-types (3.5.2) mime-types-data (~> 3.2015) - mime-types-data (3.2024.0305) + mime-types-data (3.2024.0820) mini_mime (1.1.5) - minitest (5.24.1) - mjml-rails (4.11.0) + minitest (5.25.1) + mjml-rails (4.12.1) msgpack (1.7.2) - multi_json (1.15.0) multi_xml (0.6.0) - mutex_m (0.2.0) nenv (0.3.0) net-http (0.4.1) uri - net-http-persistent (4.0.2) + net-http-persistent (4.0.4) connection_pool (~> 2.2) - net-imap (0.4.11) + net-imap (0.5.1) date net-protocol net-pop (0.1.2) - net-protocol net-protocol (0.2.2) timeout net-smtp (0.5.0) net-protocol netrc (0.11.0) - nio4r (2.7.3) - nokogiri (1.16.6-aarch64-linux) + nio4r (2.7.4) + nokogiri (1.16.8-aarch64-linux) racc (~> 1.4) - nokogiri (1.16.6-arm64-darwin) + nokogiri (1.16.8-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.6-x86_64-linux) + nokogiri (1.16.8-x86_64-linux) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -316,16 +321,16 @@ GEM omniauth-rails_csrf_protection (1.0.2) actionpack (>= 4.2) omniauth (~> 2.0) - optimist (3.1.0) - parallel (1.25.1) - parser (3.3.4.0) + optimist (3.2.0) + parallel (1.26.3) + parser (3.3.6.0) ast (~> 2.4.1) racc pastel (0.8.0) tty-color (~> 0.5) patience_diff (1.2.0) optimist (~> 3.0) - pg (1.5.6) + pg (1.5.9) pretender (0.5.0) actionpack (>= 6.1) pry (0.14.2) @@ -336,16 +341,16 @@ GEM pry (>= 0.13, < 0.15) pry-rails (0.3.11) pry (>= 0.13.0) - psych (5.1.2) + psych (5.2.0) stringio - public_suffix (5.1.0) - puma (6.4.2) + public_suffix (6.0.1) + puma (6.5.0) nio4r (~> 2.0) - pundit (2.3.2) + pundit (2.4.0) activesupport (>= 3.0.0) raabro (1.4.0) - racc (1.8.0) - rack (3.1.6) + racc (1.8.1) + rack (3.1.8) rack-cors (2.0.2) rack (>= 2.0.0) rack-mini-profiler (3.3.1) @@ -360,44 +365,43 @@ GEM rack_session_access (0.2.0) builder (>= 2.0.0) rack (>= 1.0.0) - rackup (2.1.0) + rackup (2.2.0) rack (>= 3) - webrick (~> 1.8) - rails (7.1.3.4) - actioncable (= 7.1.3.4) - actionmailbox (= 7.1.3.4) - actionmailer (= 7.1.3.4) - actionpack (= 7.1.3.4) - actiontext (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activemodel (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + rails (8.0.0) + actioncable (= 8.0.0) + actionmailbox (= 8.0.0) + actionmailer (= 8.0.0) + actionpack (= 8.0.0) + actiontext (= 8.0.0) + actionview (= 8.0.0) + activejob (= 8.0.0) + activemodel (= 8.0.0) + activerecord (= 8.0.0) + activestorage (= 8.0.0) + activesupport (= 8.0.0) bundler (>= 1.15.0) - railties (= 7.1.3.4) + railties (= 8.0.0) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) + rails-html-sanitizer (1.6.1) loofah (~> 2.21) - nokogiri (~> 1.14) - rails-i18n (7.0.9) + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) + rails-i18n (8.0.1) i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 8) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb + railties (>= 8.0.0, < 9) + railties (8.0.0) + actionpack (= 8.0.0) + activesupport (= 8.0.0) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.2.1) - ransack (4.1.1) + ransack (4.2.1) activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n @@ -406,12 +410,12 @@ GEM ffi (~> 1.0) rdoc (6.7.0) psych (>= 4.0.0) - redis (5.2.0) + redis (5.3.0) redis-client (>= 0.22.0) - redis-client (0.22.1) + redis-client (0.22.2) connection_pool - regexp_parser (2.9.2) - reline (0.5.9) + regexp_parser (2.9.3) + reline (0.5.11) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -420,8 +424,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.3.1) - strscan + rexml (3.3.9) rouge (4.1.3) rspec (3.13.0) rspec-core (~> 3.13.0) @@ -429,21 +432,21 @@ GEM rspec-mocks (~> 3.13.0) rspec-collection_matchers (1.2.1) rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) + rspec-core (3.13.2) rspec-support (~> 3.13.0) - rspec-expectations (3.13.1) + rspec-expectations (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-its (1.3.0) - rspec-core (>= 3.0.0) - rspec-expectations (>= 3.0.0) - rspec-mocks (3.13.1) + rspec-its (2.0.0) + rspec-core (>= 3.13.0) + rspec-expectations (>= 3.13.0) + rspec-mocks (3.13.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.3) - actionpack (>= 6.1) - activesupport (>= 6.1) - railties (>= 6.1) + rspec-rails (7.1.0) + actionpack (>= 7.0) + activesupport (>= 7.0) + railties (>= 7.0) rspec-core (~> 3.13) rspec-expectations (~> 3.13) rspec-mocks (~> 3.13) @@ -451,29 +454,28 @@ GEM rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.13.1) - rubocop (1.65.0) + rubocop (1.69.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.4, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.31.1, < 2.0) + rubocop-ast (>= 1.36.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.3) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.36.2) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) rubocop-factory_bot (2.26.1) rubocop (~> 1.61) - rubocop-rails (2.25.1) + rubocop-rails (2.27.0) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) + rubocop (>= 1.52.0, < 2.0) rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (3.0.3) + rubocop-rspec (3.2.0) rubocop (~> 1.61) rubocop-rspec_rails (2.30.0) rubocop (~> 1.61) @@ -490,24 +492,25 @@ GEM sprockets (> 3.0) sprockets-rails tilt - sentry-rails (5.18.1) + securerandom (0.3.2) + sentry-rails (5.21.0) railties (>= 5.0) - sentry-ruby (~> 5.18.1) - sentry-ruby (5.18.1) + sentry-ruby (~> 5.21.0) + sentry-ruby (5.21.0) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) shellany (0.0.1) - shoulda-matchers (6.2.0) + shoulda-matchers (6.4.0) activesupport (>= 5.2.0) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-console (0.9.1) + simplecov-console (0.9.2) ansi simplecov terminal-table - simplecov-html (0.12.3) + simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) sitemap_generator (6.3.0) builder (~> 3.0) @@ -521,42 +524,41 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - stringio (3.1.1) - strong_migrations (2.0.0) + stringio (3.1.2) + strong_migrations (2.1.0) activerecord (>= 6.1) - strscan (3.1.0) - super_diff (0.12.1) + super_diff (0.14.0) attr_extras (>= 6.2.4) diff-lcs patience_diff terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.3.1) + thor (1.3.2) tilt (2.3.0) timecop (0.9.10) - timeout (0.4.1) + timeout (0.4.2) tty-color (0.6.0) - turbo-rails (2.0.5) + turbo-rails (2.0.11) actionpack (>= 6.0.0) - activejob (>= 6.0.0) railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) + unicode-display_width (2.6.0) uniform_notifier (1.16.0) unindent (1.0) - uri (0.13.0) + uri (1.0.2) + useragent (0.16.10) version_gem (1.1.3) web-console (4.2.1) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.23.1) + webmock (3.24.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) + webrick (1.9.0) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -565,12 +567,14 @@ GEM xpath (3.2.0) nokogiri (~> 1.8) yajl-ruby (1.4.3) - zeitwerk (2.6.16) + zeitwerk (2.7.1) + zlib (3.1.1) PLATFORMS aarch64-linux arm64-darwin-22 arm64-darwin-23 + arm64-darwin-24 x86_64-linux DEPENDENCIES @@ -589,6 +593,11 @@ DEPENDENCIES cuprite draper factory_bot_rails + faraday + faraday-encoding + faraday-gzip + faraday-net_http + faraday-retry gaffe good_job (~> 3.99) guard-rspec @@ -615,13 +624,14 @@ DEPENDENCIES rack-cors rack-mini-profiler (~> 3.3) rack_session_access - rails (~> 7.1) - rails-i18n (~> 7.0.9) + rails (~> 8.0) + rails-i18n ransack redis + rest-client rspec-collection_matchers rspec-its - rspec-rails (= 6.1.3) + rspec-rails (= 7.1.0) rspec-retry rubocop rubocop-capybara diff --git a/README.md b/README.md index e5ef2453e..a5683f4c8 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ## Requirements -- ruby 3.3.2 +- ruby 3.3.6 - redis-server >= 6 - postgresql >= 9 - Node.js >= 6 pour mjml @@ -27,6 +27,12 @@ installer les paquets et importer les tables de la base de données : Installer `Docker` et `docker-compose` (sur Mac tout est [ici](https://docs.docker.com/desktop/mac/install/)) +Pour installer l'application : + +```sh +make install +``` + Pour lancer l'application : ```sh @@ -41,12 +47,6 @@ Pour arrêter: make stop ``` -Lors du premier lancement, il faut initialiser la base de donnée (après `make start`): - -```sh -make install_database -``` - En cas de problème, pour réinstaller la base de données: ```sh @@ -118,9 +118,9 @@ Vous pouvez accéder ensuite accéder au site via les adresses suivantes: ``` # Pour visualiser le site d'API Entreprise -http://entreprise.api.localtest.me:3000/ +http://entreprise.api.localtest.me:5000/ # Pour visualiser le site d'API Particulier -http://particulier.api.localtest.me:3000/ +http://particulier.api.localtest.me:5000/ ``` ### Avec Docker diff --git a/app/assets/images/providers/api_entreprise/cibtp.png b/app/assets/images/providers/api_entreprise/cibtp.png new file mode 100644 index 000000000..c4651dba0 Binary files /dev/null and b/app/assets/images/providers/api_entreprise/cibtp.png differ diff --git a/app/assets/stylesheets/api_entreprise/pages/home/_section_developers.scss b/app/assets/stylesheets/api_entreprise/pages/home/_section_developers.scss new file mode 100644 index 000000000..87c0e88f4 --- /dev/null +++ b/app/assets/stylesheets/api_entreprise/pages/home/_section_developers.scss @@ -0,0 +1,5 @@ +#homepage #section-developers { + #hyperping-badge { + background-image: none; + } +} diff --git a/app/assets/stylesheets/dsfr-extensions.scss b/app/assets/stylesheets/dsfr-extensions.scss index 3c2e1c496..87bbea438 100644 --- a/app/assets/stylesheets/dsfr-extensions.scss +++ b/app/assets/stylesheets/dsfr-extensions.scss @@ -115,8 +115,15 @@ max-width: 100%; } -.fr-connect-moncomptepro:before { - background-image: image-url("mon_compte_pro.svg") !important; +.fr-connect-proconnect { + padding-left: 4.375em !important; +} + +.fr-connect-proconnect:before { + width: 3.375em !important; + background-size: 3.375em 3em !important; + left: 0.625em !important; + background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2254%22%20height%3D%2248%22%20viewBox%3D%220%200%2054%2048%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M34.992%2015.0979L19.998%206.42087L5.004%2015.1819C4.91144%2015.2346%204.83441%2015.3108%204.78069%2015.4028C4.72697%2015.4948%204.69845%2015.5993%204.698%2015.7059V32.6539C4.70386%2032.7592%204.73465%2032.8616%204.78786%2032.9527C4.84106%2033.0439%204.91514%2033.121%205.004%2033.1779L19.996%2041.7779L34.99%2033.0719C35.0789%2033.0151%2035.153%2032.9379%2035.2063%2032.8468C35.2595%2032.7557%2035.2902%2032.6532%2035.296%2032.5479V15.6259C35.2966%2015.5188%2035.2687%2015.4136%2035.2153%2015.3208C35.1619%2015.2281%2035.0848%2015.1511%2034.992%2015.0979Z%22%20fill%3D%22%23000091%22%2F%3E%0A%3Cpath%20d%3D%22M14.641%2015.5979L9.612%2024.2259L5.055%2015.0509L10.445%2011.9379L14.934%2015.0979L14.641%2015.5979ZM35.297%2032.5779V15.6199C35.297%2015.5134%2035.2686%2015.4088%2035.2149%2015.3169C35.1611%2015.225%2035.0838%2015.1491%2034.991%2015.0969L19.998%206.42087%22%20fill%3D%22%23FCC63A%22%2F%3E%0A%3Cpath%20d%3D%22M4.7%2032.5779L20%206.42087V41.7829L5.004%2033.1779C4.91514%2033.121%204.84106%2033.0439%204.78786%2032.9527C4.73465%2032.8616%204.70386%2032.7592%204.698%2032.6539V15.7059L4.7%2032.5779ZM29.369%2011.8429L34.827%2014.9979L30.338%2024.1479L24.951%2014.9119L29.369%2011.8429Z%22%20fill%3D%22%230063CB%22%2F%3E%0A%3Cpath%20d%3D%22M39.606%2012.3029L20.416%201.28287C20.2868%201.2185%2020.1444%201.185%2020%201.185C19.8556%201.185%2019.7132%201.2185%2019.584%201.28287L0.394%2012.3029C0.278488%2012.3798%200.182654%2012.4827%200.114219%2012.6034C0.0457831%2012.7242%200.00665952%2012.8593%200%2012.9979V34.9979C0.00588693%2035.1373%200.0446444%2035.2734%200.113114%2035.3951C0.181583%2035.5167%200.277826%2035.6205%200.394%2035.6979L19.583%2046.7179C19.7122%2046.7822%2019.8546%2046.8157%2019.999%2046.8157C20.1434%2046.8157%2020.2858%2046.7822%2020.415%2046.7179L39.606%2035.6979C39.7222%2035.6205%2039.8184%2035.5167%2039.8869%2035.3951C39.9554%2035.2734%2039.9941%2035.1373%2040%2034.9979V12.9979C39.9933%2012.8593%2039.9542%2012.7242%2039.8858%2012.6034C39.8173%2012.4827%2039.7215%2012.3798%2039.606%2012.3029ZM10.789%2030.0589H10.868C10.826%2030.0589%2010.789%2030.0659%2010.789%2030.1089C10.789%2030.2089%2010.94%2030.1089%2010.989%2030.2089C10.7514%2030.2154%2010.5257%2030.3144%2010.36%2030.4849C10.36%2030.5359%2010.46%2030.5359%2010.511%2030.5359C10.436%2030.6359%2010.285%2030.5859%2010.234%2030.6869C10.2611%2030.7139%2010.2961%2030.7314%2010.334%2030.7369C10.284%2030.7369%2010.234%2030.7369%2010.234%2030.7879V30.9389C10.108%2030.9389%2010.058%2031.0389%209.957%2031.0899C10.157%2031.2409%2010.284%2031.0899%2010.485%2031.0899C9.957%2031.2899%209.529%2031.5679%209.001%2031.7189C8.901%2031.7189%209.001%2031.8699%208.901%2031.8699C9.052%2031.9699%209.128%2031.8199%209.278%2031.8199C8.624%2032.1969%207.945%2032.5199%207.241%2032.9519C7.18676%2033.0059%207.15164%2033.0761%207.141%2033.1519H6.941C6.841%2033.2019%206.891%2033.3279%206.79%2033.4289C7.016%2033.5799%207.29%2033.2289%207.444%2033.4289C7.494%2033.4289%207.344%2033.4789%207.244%2033.4789C7.194%2033.4789%207.194%2033.5789%207.144%2033.5789H6.99C6.89%2033.6539%206.79%2033.7049%206.79%2033.8549C6.74664%2033.8469%206.70187%2033.8521%206.66155%2033.8699C6.62122%2033.8878%206.58723%2033.9174%206.564%2033.9549C7.63803%2033.9506%208.70269%2033.7549%209.708%2033.3769C10.4877%2032.9799%2011.1938%2032.4526%2011.796%2031.8179C11.8231%2031.8449%2011.8406%2031.88%2011.846%2031.9179C11.6989%2032.3544%2011.4166%2032.7326%2011.04%2032.9979C10.763%2033.1489%2010.562%2033.3749%2010.34%2033.4759C10.1917%2033.5588%2010.0487%2033.651%209.912%2033.7519C9.27972%2033.9486%208.63063%2034.0865%207.973%2034.1639L7.668%2034.2079C7.443%2034.2409%207.219%2034.2769%206.997%2034.3159L5.004%2033.1779C4.93108%2033.132%204.86805%2033.072%204.8186%2033.0014C4.76914%2032.9308%204.73427%2032.8511%204.716%2032.7669C4.74933%2032.749%204.78082%2032.7279%204.81%2032.7039C4.77901%2032.671%204.74011%2032.6465%204.697%2032.6329V31.9829C5.74493%2031.7965%206.76549%2031.4801%207.735%2031.0409C6.81772%2030.4034%205.78681%2029.9475%204.698%2029.6979V28.1829C5.25307%2028.2738%205.80084%2028.4049%206.337%2028.5749C6.74977%2028.7265%207.14585%2028.9202%207.519%2029.1529C7.66563%2029.2939%207.82573%2029.4201%207.997%2029.5299C8.11768%2029.5987%208.25253%2029.639%208.3912%2029.6477C8.52987%2029.6564%208.66869%2029.6332%208.797%2029.5799H9.127C9.84341%2029.4615%2010.5135%2029.1484%2011.064%2028.6749C11.064%2028.7249%2011.114%2028.7249%2011.164%2028.7249C11.0857%2029.1235%2010.941%2029.5061%2010.736%2029.8569C10.739%2029.9079%2010.688%2030.0089%2010.789%2030.0589ZM13.606%2033.6299C13.857%2033.5299%2014.006%2033.3529%2014.235%2033.2529C14.185%2033.3029%2014.185%2033.4039%2014.135%2033.4529C13.9474%2033.5701%2013.7707%2033.704%2013.607%2033.8529C13.0413%2034.3514%2012.5116%2034.8894%2012.022%2035.4629C11.77%2035.7629%2011.494%2036.0409%2011.222%2036.3179C11.1256%2036.408%2011.0219%2036.4899%2010.912%2036.5629L8.385%2035.1129C8.74443%2035.1432%209.1063%2035.1254%209.461%2035.0599C9.75543%2034.9773%2010.0416%2034.8679%2010.316%2034.7329V34.8329C11.016%2034.5559%2011.548%2033.9269%2012.253%2033.7009C12.278%2033.7009%2012.379%2033.8009%2012.479%2033.7509C12.6601%2033.5264%2012.8904%2033.3466%2013.152%2033.2252C13.4136%2033.1038%2013.6997%2033.0442%2013.988%2033.0509C13.988%2033.1009%2013.988%2033.1509%2014.038%2033.1509H14.063C13.912%2033.2769%2013.736%2033.4019%2013.563%2033.5279C13.506%2033.5799%2013.556%2033.6299%2013.606%2033.6299ZM4.698%2027.4659V27.2799C5.21615%2027.1444%205.75053%2027.0811%206.286%2027.0919C6.44434%2027.0667%206.60566%2027.0667%206.764%2027.0919C6.05844%2027.0912%205.35854%2027.2179%204.698%2027.4659ZM35.298%2032.5539C35.2922%2032.6592%2035.2615%2032.7617%2035.2083%2032.8528C35.155%2032.9439%2035.0809%2033.0211%2034.992%2033.0779L24.913%2038.9289C23.7558%2038.5977%2022.618%2038.2021%2021.505%2037.7439C21.3437%2037.3929%2021.256%2037.0127%2021.2474%2036.6266C21.2388%2036.2404%2021.3095%2035.8566%2021.455%2035.4989C21.5349%2035.1909%2021.6531%2034.8943%2021.807%2034.6159C21.832%2034.5909%2021.857%2034.5659%2021.857%2034.5399C21.8636%2034.5399%2021.87%2034.5372%2021.8747%2034.5326C21.8794%2034.5279%2021.882%2034.5215%2021.882%2034.5149C21.9931%2034.3204%2022.1191%2034.1348%2022.259%2033.9599L22.274%2033.9449L22.294%2033.9239L22.309%2033.9089C22.309%2033.8839%2022.334%2033.8589%2022.359%2033.8329C22.384%2033.7819%2022.434%2033.7569%2022.459%2033.7069C22.6346%2033.521%2022.8285%2033.3535%2023.038%2033.2069C23.2507%2033.1298%2023.4695%2033.0706%2023.692%2033.0299C24.503%2033.0896%2025.3095%2033.1991%2026.107%2033.3579C26.205%2033.3726%2026.2992%2033.4066%2026.384%2033.4579C26.6851%2033.5165%2026.9962%2033.4994%2027.289%2033.4079C27.4799%2033.373%2027.6587%2033.2897%2027.8084%2033.1662C27.9581%2033.0426%2028.0736%2032.8827%2028.144%2032.7019C28.232%2032.5407%2028.2823%2032.3616%2028.2909%2032.1781C28.2996%2031.9947%2028.2664%2031.8116%2028.194%2031.6429C28.016%2031.3669%2028.181%2031.2059%2028.375%2031.0529L28.443%2030.9979C28.5294%2030.9367%2028.6071%2030.864%2028.674%2030.7819C28.8%2030.5299%2028.574%2030.3819%2028.523%2030.1519C28.473%2030.0519%2028.297%2030.1019%2028.196%2029.9519C28.548%2029.8009%2029.051%2029.5229%2028.825%2029.0949C28.674%2028.8679%2028.448%2028.4649%2028.725%2028.2379C29.077%2028.0379%2029.58%2028.0869%2029.731%2027.7589C29.7804%2027.5682%2029.7794%2027.368%2029.7282%2027.1778C29.6771%2026.9876%2029.5774%2026.814%2029.439%2026.6739L29.364%2026.5659C29.289%2026.4589%2029.215%2026.3519%2029.153%2026.2459C28.9941%2025.9821%2028.8177%2025.7292%2028.625%2025.4889C28.405%2025.1774%2028.2275%2024.8381%2028.097%2024.4799C27.946%2024.1019%2028.147%2023.7739%2028.147%2023.3959C28.1618%2022.6677%2028.0512%2021.9425%2027.82%2021.2519C27.694%2020.8989%2027.644%2020.5209%2027.493%2020.1929C27.474%2019.9821%2027.3956%2019.781%2027.267%2019.6129C27.2422%2019.5618%2027.2292%2019.5057%2027.2292%2019.4489C27.2292%2019.3921%2027.2422%2019.336%2027.267%2019.2849C27.472%2019.1403%2027.6656%2018.9802%2027.846%2018.8059C27.9017%2018.6836%2027.9122%2018.5455%2027.8756%2018.4162C27.839%2018.2869%2027.7576%2018.1748%2027.646%2018.0999C27.319%2017.9489%2027.346%2018.4279%2027.118%2018.5289H26.967C26.917%2018.4029%2027.017%2018.3519%2027.118%2018.2519C27.118%2018.2019%2027.118%2018.1009%2027.068%2018.1009C26.868%2018.1009%2026.691%2018.0499%2026.64%2017.9499C26.158%2017.3492%2025.5113%2016.9023%2024.779%2016.6639C24.967%2016.7216%2025.1615%2016.7552%2025.358%2016.7639C25.6956%2016.8353%2026.0471%2016.8003%2026.364%2016.6639C26.591%2016.5879%2026.641%2016.1849%2026.741%2015.9579C26.7613%2015.848%2026.7583%2015.7351%2026.7323%2015.6264C26.7063%2015.5177%2026.6578%2015.4157%2026.59%2015.3269C26.3629%2014.9967%2026.0495%2014.7352%2025.684%2014.5709C25.508%2014.4949%2025.231%2014.3439%2025.005%2014.2179C24.928%2014.1637%2024.8434%2014.1212%2024.754%2014.0919C21.789%2012.6069%2015.685%2013.8919%2015.22%2014.0919H15.211C14.7825%2014.2161%2014.3648%2014.375%2013.962%2014.5669C13.4074%2014.7728%2012.9066%2015.1015%2012.497%2015.5284C12.0875%2015.9552%2011.7798%2016.4692%2011.597%2017.0319C11.026%2017.407%2010.5658%2017.928%2010.264%2018.5409C9.836%2019.3409%209.208%2020.0499%209.308%2020.9549C9.408%2021.7349%209.585%2022.4389%209.736%2023.2439C9.77894%2023.5159%209.84586%2023.7836%209.936%2024.0439C10.036%2024.3199%209.936%2024.6729%2010.087%2024.8989C10.162%2025.0499%2010.112%2025.2259%2010.314%2025.3269V25.5269C10.364%2025.5769%2010.364%2025.6269%2010.465%2025.6269V25.8269C10.8997%2026.2504%2011.2723%2026.7331%2011.572%2027.2609C11.672%2027.5369%2011.094%2027.4119%2010.872%2027.3109C10.4565%2027.0404%2010.0762%2026.7192%209.74%2026.3549C9.71248%2026.3817%209.69456%2026.4168%209.689%2026.4549C9.889%2026.8069%2010.595%2027.2349%2010.217%2027.4609C10.017%2027.5609%209.789%2027.3099%209.588%2027.5119C9.538%2027.5869%209.588%2027.6879%209.588%2027.7879C9.311%2027.5879%209.01%2027.6879%208.733%2027.5879C8.533%2027.5379%208.481%2027.1609%208.255%2027.1609C7.65851%2027.0153%207.05373%2026.9061%206.444%2026.8339C5.86788%2026.7475%205.28724%2026.6944%204.705%2026.6749V15.7059C4.70545%2015.5993%204.73397%2015.4948%204.78769%2015.4028C4.84141%2015.3108%204.91844%2015.2346%205.011%2015.1819L19.998%206.42087L34.992%2015.0979C35.0846%2015.1505%2035.1617%2015.2267%2035.2154%2015.3187C35.2692%2015.4107%2035.2977%2015.5153%2035.298%2015.6219V32.5539ZM27.344%2024.2929C27.3138%2024.3399%2027.2719%2024.3782%2027.2225%2024.4043C27.1731%2024.4304%2027.1178%2024.4434%2027.062%2024.4419C26.9618%2024.5263%2026.8676%2024.6175%2026.78%2024.7149C26.88%2024.7149%2026.78%2024.8639%2026.88%2024.8639C26.675%2025.0869%2026.957%2025.5579%2026.675%2025.6569C26.3059%2025.7558%2025.9171%2025.7558%2025.548%2025.6569C25.6029%2025.6451%2025.6589%2025.6397%2025.715%2025.6409H25.8C25.8627%2025.6484%2025.9263%2025.6404%2025.9851%2025.6173C26.0439%2025.5943%2026.0961%2025.557%2026.137%2025.5089V25.3089C26.137%2025.2589%2026.086%2025.2589%2026.037%2025.2589C26.0107%2025.287%2025.9752%2025.3047%2025.937%2025.3089C25.9345%2025.2639%2025.9185%2025.2207%2025.891%2025.185C25.8635%2025.1493%2025.8259%2025.1227%2025.783%2025.1089C25.6501%2025.1266%2025.5148%2025.1109%2025.3894%2025.0633C25.2641%2025.0156%2025.1526%2024.9375%2025.065%2024.8359C25.2006%2024.7707%2025.3542%2024.7531%2025.501%2024.7859C25.629%2024.7859%2025.578%2024.5629%2025.732%2024.4639H25.886C26.193%2024.0919%2026.757%2023.9929%2026.86%2023.6209C26.86%2023.5209%2026.578%2023.5209%2026.373%2023.4719C26.0989%2023.4383%2025.821%2023.4552%2025.553%2023.5219C25.1932%2023.5715%2024.8405%2023.6631%2024.502%2023.7949C24.7823%2023.5891%2025.094%2023.4301%2025.425%2023.3239C25.6574%2023.2344%2025.8978%2023.1674%2026.143%2023.1239L26.275%2023.0979L26.408%2023.0709C26.5894%2023.0167%2026.7826%2023.0167%2026.964%2023.0709C27.195%2023.1709%2027.579%2023.1709%2027.63%2023.3189C27.73%2023.5919%2027.476%2023.8639%2027.195%2024.0629C27.138%2024.1439%2027.344%2024.1979%2027.344%2024.2929Z%22%20fill%3D%22white%22%2F%3E%0A%3Crect%20x%3D%2224%22%20y%3D%221%22%20width%3D%2229.56%22%20height%3D%2213.302%22%20rx%3D%222%22%20fill%3D%22%23FCC63A%22%2F%3E%0A%3Cpath%20d%3D%22M26.562%2012.1676V3.31589H29.4831C30.4526%203.31589%2031.2155%203.55194%2031.7719%204.02403C32.3367%204.49612%2032.6191%205.14104%2032.6191%205.95877C32.6191%206.76807%2032.3367%207.40876%2031.7719%207.88085C31.2155%208.35295%2030.4526%208.58899%2029.4831%208.58899H28.3576V12.1676H26.562ZM29.559%204.84598H28.3576V7.05891H29.559C29.9383%207.05891%2030.2334%206.96196%2030.4441%206.76807C30.6633%206.57417%2030.7729%206.29597%2030.7729%205.93348C30.7729%205.59627%2030.6633%205.33072%2030.4441%205.13682C30.2334%204.94293%2029.9383%204.84598%2029.559%204.84598Z%22%20fill%3D%22%23161616%22%2F%3E%0A%3Cpath%20d%3D%22M34.2307%2012.1676V3.31589H36.9368C37.9063%203.31589%2038.6734%203.55194%2039.2383%204.02403C39.8031%204.49612%2040.0855%205.14104%2040.0855%205.95877C40.0855%206.48987%2039.959%206.95353%2039.7061%207.34975C39.4617%207.73754%2039.116%208.03681%2038.6692%208.24757L41.4512%2012.1676H39.3015L36.9494%208.58899H36.0263V12.1676H34.2307ZM37.038%204.84598H36.0263V7.05891H37.038C37.4173%207.05891%2037.7124%206.96196%2037.9231%206.76807C38.1339%206.57417%2038.2393%206.29597%2038.2393%205.93348C38.2393%205.59627%2038.1339%205.33072%2037.9231%205.13682C37.7124%204.94293%2037.4173%204.84598%2037.038%204.84598Z%22%20fill%3D%22%23161616%22%2F%3E%0A%3Cpath%20d%3D%22M46.5486%203.06299C47.2399%203.06299%2047.8722%203.18944%2048.4454%203.44235C49.0271%203.69525%2049.5245%204.03246%2049.9376%204.45397C50.3507%204.87548%2050.671%205.37287%2050.8986%205.94612C51.1262%206.51095%2051.24%207.10949%2051.24%207.74176C51.24%208.37402%2051.1262%208.97678%2050.8986%209.55004C50.671%2010.1149%2050.3507%2010.608%2049.9376%2011.0295C49.5245%2011.451%2049.0271%2011.7883%2048.4454%2012.0412C47.8722%2012.2941%2047.2399%2012.4205%2046.5486%2012.4205C45.8574%2012.4205%2045.2209%2012.2941%2044.6392%2012.0412C44.0575%2011.7883%2043.5601%2011.451%2043.147%2011.0295C42.734%2010.608%2042.4136%2010.1149%2042.186%209.55004C41.9584%208.97678%2041.8446%208.37402%2041.8446%207.74176C41.8446%207.10949%2041.9584%206.51095%2042.186%205.94612C42.4136%205.37287%2042.734%204.87548%2043.147%204.45397C43.5601%204.03246%2044.0575%203.69525%2044.6392%203.44235C45.2209%203.18944%2045.8574%203.06299%2046.5486%203.06299ZM46.5486%2010.7387C46.9617%2010.7387%2047.3411%2010.6628%2047.6867%2010.5111C48.0408%2010.3509%2048.34%2010.1402%2048.5845%209.87882C48.8374%209.60905%2049.0355%209.29292%2049.1789%208.93042C49.3222%208.55949%2049.3938%208.16327%2049.3938%207.74176C49.3938%207.32025%2049.3222%206.92824%2049.1789%206.56574C49.0355%206.19481%2048.8374%205.87868%2048.5845%205.61734C48.34%205.34758%2048.0408%205.13682%2047.6867%204.98508C47.3411%204.8249%2046.9617%204.74482%2046.5486%204.74482C46.1355%204.74482%2045.752%204.8249%2045.3979%204.98508C45.0438%205.13682%2044.7403%205.34758%2044.4874%205.61734C44.243%205.87868%2044.0491%206.19481%2043.9058%206.56574C43.7624%206.92824%2043.6908%207.32025%2043.6908%207.74176C43.6908%208.16327%2043.7624%208.55949%2043.9058%208.93042C44.0491%209.29292%2044.243%209.60905%2044.4874%209.87882C44.7403%2010.1402%2045.0438%2010.3509%2045.3979%2010.5111C45.752%2010.6628%2046.1355%2010.7387%2046.5486%2010.7387Z%22%20fill%3D%22%23161616%22%2F%3E%0A%3C%2Fsvg%3E") !important; } .fr-hr-or { diff --git a/app/assets/stylesheets/shared/pages/redoc.scss b/app/assets/stylesheets/shared/pages/redoc.scss new file mode 100644 index 000000000..2ad91c006 --- /dev/null +++ b/app/assets/stylesheets/shared/pages/redoc.scss @@ -0,0 +1,5 @@ +#redoc_container { + table a { + line-break: anywhere; + } +} \ No newline at end of file diff --git a/app/clients/abstract_hubee_api_client.rb b/app/clients/abstract_hubee_api_client.rb new file mode 100644 index 000000000..9081c04aa --- /dev/null +++ b/app/clients/abstract_hubee_api_client.rb @@ -0,0 +1,23 @@ +require 'faraday' + +class AbstractHubEEAPIClient + protected + + def http_connection(&block) + Faraday.new do |conn| + conn.request :retry, max: 5 + conn.response :raise_error + conn.response :json + conn.options.timeout = 2 + yield(conn) if block + end + end + + def consumer_key + Rails.application.credentials.hubee_consumer_key + end + + def consumer_secret + Rails.application.credentials.hubee_consumer_secret + end +end diff --git a/app/clients/abstract_insee_api_client.rb b/app/clients/abstract_insee_api_client.rb new file mode 100644 index 000000000..5b836e6fa --- /dev/null +++ b/app/clients/abstract_insee_api_client.rb @@ -0,0 +1,23 @@ +require 'faraday' + +class AbstractINSEEAPIClient + protected + + def http_connection(&block) + @http_connection ||= Faraday.new do |conn| + conn.request :retry, max: 5 + conn.response :raise_error + conn.response :json + conn.options.timeout = 2 + yield(conn) if block + end + end + + def consumer_key + Rails.application.credentials.insee_consumer_key + end + + def consumer_secret + Rails.application.credentials.insee_consumer_secret + end +end diff --git a/app/clients/formulaire_qf_api_client.rb b/app/clients/formulaire_qf_api_client.rb new file mode 100644 index 000000000..45cf86a64 --- /dev/null +++ b/app/clients/formulaire_qf_api_client.rb @@ -0,0 +1,33 @@ +# :nocov: +class FormulaireQFAPIClient + def create_collectivity(organization:, editor_id: nil) + params = { + siret: organization.siret, + code_cog: organization.code_commune_etablissement, + departement: organization.code_postal_etablissement[0..1], + name: organization.denomination, + status: 'active', + editor: editor_id + } + + http_connection.post("#{host}/api/collectivites", params.to_json) + end + + private + + def host + Rails.application.credentials.formulaire_qf.host + end + + def http_connection(&block) + Faraday.new do |conn| + conn.headers['Content-Type'] = 'application/json' + conn.request :authorization, 'Bearer', -> { secret } + yield(conn) if block + end + end + + def secret + Rails.application.credentials.formulaire_qf.secret + end +end diff --git a/app/clients/hubee_api_authentication.rb b/app/clients/hubee_api_authentication.rb new file mode 100644 index 000000000..e7e0a6819 --- /dev/null +++ b/app/clients/hubee_api_authentication.rb @@ -0,0 +1,29 @@ +# :nocov: +class HubEEAPIAuthentication < AbstractHubEEAPIClient + def access_token + http_connection.post( + auth_url, + 'grant_type=client_credentials&scope=ADMIN', + { + 'Authorization' => "Basic #{encoded_client_id_and_secret}" + } + ).body['access_token'] + end + + private + + def auth_url + Rails.application.credentials.hubee_auth_url + end + + def encoded_client_id_and_secret + Base64.strict_encode64("#{consumer_key}:#{consumer_secret}") + end + + def http_connection(&block) + @http_connection ||= super do |conn| + conn.response :json + yield(conn) if block + end + end +end diff --git a/app/clients/hubee_api_client.rb b/app/clients/hubee_api_client.rb new file mode 100644 index 000000000..bb90c4f46 --- /dev/null +++ b/app/clients/hubee_api_client.rb @@ -0,0 +1,131 @@ +# :nocov: +class HubEEAPIClient < AbstractHubEEAPIClient # rubocop:disable Metrics/ClassLength + class NotFound < StandardError; end + class AlreadyExists < StandardError; end + + def find_or_create_organization(organization, email_demandeur = nil) + find_organization(organization) + rescue NotFound + create_organization(organization, email_demandeur) + end + + def find_organization(organization) + http_connection.get("#{host}/referential/v1/organizations/SI-#{organization.siret}-#{organization.code_commune_etablissement}").body + rescue Faraday::ResourceNotFound + raise NotFound + end + + def create_organization(organization, email) + http_connection.post( + "#{host}/referential/v1/organizations", + { + type: 'SI', + companyRegister: organization.siret, + branchCode: organization.code_commune_etablissement, + email:, + name: organization.denomination, + country: 'France', + postalCode: organization.code_postal_etablissement, + territory: organization.code_commune_etablissement, + status: 'Actif' + }.to_json, + 'Content-Type' => 'application/json' + ).body + rescue Faraday::BadRequestError => e + raise AlreadyExists if already_exists_error?(e) + + raise + end + + def create_subscription(authorization_request, organization_payload, process_code, editor_payload = {}) + subscription_payload = find_or_create_inactive_subscription(authorization_request, organization_payload, process_code) + activate_subscription(authorization_request, subscription_payload, editor_payload) + subscription_payload + end + + def find_subscription(_authorization_request, organization_payload, process_code) + request = http_connection { |conn| conn.request :gzip }.get( + "#{host}/referential/v1/subscriptions", + companyRegister: organization_payload['companyRegister'], + processCode: process_code + ) + request.body.first + end + + protected + + def host + Rails.application.credentials.hubee_api_url + end + + def already_exists_error?(faraday_error) + faraday_error.response[:body]['errors'].any? do |error| + error['message'].include?('already exists') + end + end + + def http_connection(&block) + super do |conn| + conn.request :authorization, 'Bearer', -> { HubEEAPIAuthentication.new.access_token } + yield(conn) if block + end + end + + private + + def activate_subscription(authorization_request, subscription_payload, editor_payload = {}) # rubocop:disable Metrics/AbcSize + subscription_id = authorization_request.extra_infos['hubee_subscription_id'] + return if subscription_id.blank? + + payload = subscription_payload.with_indifferent_access.merge({ + status: 'Actif', + activateDateTime: DateTime.now.iso8601, + accessMode: 'API', + notificationFrequency: 'Aucune' + }.with_indifferent_access) + + payload.delete('id') + payload.delete('creationDateTime') + payload.merge!(editor_payload.with_indifferent_access) + + http_connection.put( + "#{host}/referential/v1/subscriptions/#{subscription_id}", + payload.to_json, + 'Content-Type' => 'application/json' + ).body + end + + def create_inactive_subscription(authorization_request, organization_payload, process_code) # rubocop:disable Metrics/AbcSize + http_connection.post( + "#{host}/referential/v1/subscriptions", + { + datapassId: authorization_request.external_id.to_i, + notificationFrequency: 'Aucune', + processCode: process_code, + subscriber: { + type: 'SI', + companyRegister: organization_payload['companyRegister'], + branchCode: organization_payload['branchCode'] + }, + email: authorization_request.demandeur.email, + status: 'Inactif', + localAdministrator: { + email: authorization_request.demandeur.email + }, + validateDateTime: DateTime.now.iso8601, + updateDateTime: DateTime.now.iso8601 + }.to_json, + 'Content-Type' => 'application/json' + ).body + rescue Faraday::BadRequestError => e + raise AlreadyExists if already_exists_error?(e) + + raise + end + + def find_or_create_inactive_subscription(authorization_request, organization_payload, process_code) + create_inactive_subscription(authorization_request, organization_payload, process_code) + rescue HubEEAPIClient::AlreadyExists + find_subscription(authorization_request, organization_payload, process_code) + end +end diff --git a/app/clients/insee_api_authentication.rb b/app/clients/insee_api_authentication.rb new file mode 100644 index 000000000..85154071c --- /dev/null +++ b/app/clients/insee_api_authentication.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class INSEEAPIAuthentication < AbstractINSEEAPIClient + def access_token + http_connection.post( + 'https://api.insee.fr/token', + 'grant_type=client_credentials', + { + 'Authorization' => "Basic #{encoded_client_id_and_secret}" + } + ).body['access_token'] + end + + private + + def encoded_client_id_and_secret + Base64.strict_encode64("#{consumer_key}:#{consumer_secret}") + end +end diff --git a/app/clients/insee_sirene_api_client.rb b/app/clients/insee_sirene_api_client.rb new file mode 100644 index 000000000..488ca977f --- /dev/null +++ b/app/clients/insee_sirene_api_client.rb @@ -0,0 +1,15 @@ +class INSEESireneAPIClient < AbstractINSEEAPIClient + def etablissement(siret:) + http_connection.get( + "https://api.insee.fr/entreprises/sirene/V3.11/siret/#{siret}" + ).body + end + + protected + + def http_connection + super do |conn| + conn.request :authorization, 'Bearer', -> { INSEEAPIAuthentication.new.access_token } + end + end +end diff --git a/app/controllers/api_entreprise/transfer_user_account_controller.rb b/app/controllers/api_entreprise/transfer_user_account_controller.rb deleted file mode 100644 index 300f32997..000000000 --- a/app/controllers/api_entreprise/transfer_user_account_controller.rb +++ /dev/null @@ -1,3 +0,0 @@ -class APIEntreprise::TransferUserAccountController < APIEntreprise::AuthenticatedUsersController - include TransferUserAccountManagement -end diff --git a/app/controllers/api_particulier/pages_controller.rb b/app/controllers/api_particulier/pages_controller.rb index 694b6b60e..da3ba88e8 100644 --- a/app/controllers/api_particulier/pages_controller.rb +++ b/app/controllers/api_particulier/pages_controller.rb @@ -29,6 +29,10 @@ def redoc render 'shared/pages/redoc' end + def redoc_v3 + render 'shared/pages/redoc_v3' + end + def mentions render 'shared/pages/mentions' end diff --git a/app/controllers/api_particulier/reporters_controller.rb b/app/controllers/api_particulier/reporters_controller.rb new file mode 100644 index 000000000..c677fc50c --- /dev/null +++ b/app/controllers/api_particulier/reporters_controller.rb @@ -0,0 +1,33 @@ +class APIParticulier::ReportersController < APIParticulier::AuthenticatedUsersController + before_action :check_if_reporter_or_admin + + helper_method :groups_for_reporter + + def index + @datapasses_for_group_url = MetabaseEmbedService.new(490, { groups: groups_for_reporter.join('|') }).url + end + + private + + def check_if_reporter_or_admin + return if current_user.admin? || reporter_emails.include?(current_user.email) + + redirect_to root_path + end + + def groups_for_reporter + if current_user.admin? + reporters_config.keys + else + reporters_config.select { |_, emails| emails.include?(current_user.email) }.keys + end + end + + def reporter_emails + reporters_config.values.flatten.uniq + end + + def reporters_config + Rails.application.credentials.api_particulier_reporters || {} + end +end diff --git a/app/controllers/api_particulier/transfer_user_account_controller.rb b/app/controllers/api_particulier/transfer_user_account_controller.rb deleted file mode 100644 index 684390f1d..000000000 --- a/app/controllers/api_particulier/transfer_user_account_controller.rb +++ /dev/null @@ -1,3 +0,0 @@ -class APIParticulier::TransferUserAccountController < APIParticulier::AuthenticatedUsersController - include TransferUserAccountManagement -end diff --git a/app/controllers/concerns/transfer_user_account_management.rb b/app/controllers/concerns/transfer_user_account_management.rb deleted file mode 100644 index 54fb72efa..000000000 --- a/app/controllers/concerns/transfer_user_account_management.rb +++ /dev/null @@ -1,38 +0,0 @@ -module TransferUserAccountManagement - extend ActiveSupport::Concern - - def new - render 'shared/transfer_user_account/new' - end - - def create - transfer = User::TransferAccount.call(transfer_account_params) - - if transfer.success? - success_message(title: t('shared.transfer_user_account.create.success.title')) - - redirect_to user_profile_path, - status: :see_other - else - error_message(title: t('shared.transfer_user_account.create.error.title', target_email: t("#{namespace}.support_email"))) - - render 'shared/transfer_user_account/new', - status: :unprocessable_entity - end - end - - private - - def transfer_account_params - { - current_owner: current_user, - target_user_email: params[:email], - authorization_requests: current_user.authorization_requests.for_api(api), - namespace: - } - end - - def api - namespace.slice(4..-1) - end -end diff --git a/app/interactors/datapass_webhook/adapt_v2_to_v1.rb b/app/interactors/datapass_webhook/adapt_v2_to_v1.rb index 4f4b117f9..3130b36e8 100644 --- a/app/interactors/datapass_webhook/adapt_v2_to_v1.rb +++ b/app/interactors/datapass_webhook/adapt_v2_to_v1.rb @@ -1,6 +1,7 @@ class DatapassWebhook::AdaptV2ToV1 < ApplicationInteractor def call context.event = context.event.sub('authorization_request', 'enrollment') + context.authorization_request_data = generic_data.dup context.data = build_data end @@ -11,6 +12,7 @@ def build_data { 'pass' => { 'id' => context.model_id, + 'public_id' => context.data['public_id'], 'intitule' => generic_data['intitule'], 'description' => generic_data['description'], 'demarche' => context.data['form_uid'], @@ -20,7 +22,8 @@ def build_data 'previous_enrollment_id' => nil, 'scopes' => generic_data['scopes'].index_with { |_scope| true }, 'team_members' => build_team_members, - 'events' => [] + 'events' => [], + 'service_provider' => context.data['service_provider'] } } end diff --git a/app/interactors/datapass_webhook/api_particulier/create_formulaire_qf_collectivity.rb b/app/interactors/datapass_webhook/api_particulier/create_formulaire_qf_collectivity.rb new file mode 100644 index 000000000..c2c3600c2 --- /dev/null +++ b/app/interactors/datapass_webhook/api_particulier/create_formulaire_qf_collectivity.rb @@ -0,0 +1,14 @@ +class DatapassWebhook::APIParticulier::CreateFormulaireQFCollectivity < ApplicationInteractor + delegate :authorization_request, to: :context + delegate :organization, to: :authorization_request, private: true + + def call + FormulaireQFAPIClient.new.create_collectivity(organization:, editor_id:) + end + + private + + def editor_id + authorization_request.extra_infos.dig('service_provider', 'id') + end +end diff --git a/app/interactors/datapass_webhook/api_particulier/create_hubee_organization.rb b/app/interactors/datapass_webhook/api_particulier/create_hubee_organization.rb new file mode 100644 index 000000000..0cda5568d --- /dev/null +++ b/app/interactors/datapass_webhook/api_particulier/create_hubee_organization.rb @@ -0,0 +1,27 @@ +class DatapassWebhook::APIParticulier::CreateHubEEOrganization < ApplicationInteractor + delegate :authorization_request, :hubee_organization_payload, to: :context + + def call + context.hubee_organization_payload = find_or_create_organization_on_hubee + save_hubee_organization_id_to_authorization_request + end + + private + + def build_hubee_organization_id + "SI-#{hubee_organization_payload['companyRegister']}-#{hubee_organization_payload['branchCode']}" + end + + def find_or_create_organization_on_hubee + hubee_api_client.find_or_create_organization(authorization_request.organization, authorization_request.demandeur.email) + end + + def hubee_api_client + @hubee_api_client ||= HubEEAPIClient.new + end + + def save_hubee_organization_id_to_authorization_request + authorization_request.extra_infos['hubee_organization_id'] = build_hubee_organization_id + authorization_request.save! + end +end diff --git a/app/interactors/datapass_webhook/api_particulier/create_hubee_subscription.rb b/app/interactors/datapass_webhook/api_particulier/create_hubee_subscription.rb new file mode 100644 index 000000000..86779ed05 --- /dev/null +++ b/app/interactors/datapass_webhook/api_particulier/create_hubee_subscription.rb @@ -0,0 +1,52 @@ +class DatapassWebhook::APIParticulier::CreateHubEESubscription < ApplicationInteractor + delegate :authorization_request, :hubee_organization_payload, :hubee_subscription_payload, to: :context + + def call + context.hubee_subscription_payload = create_subscription_on_hubee + save_hubee_subscription_id_to_authorization_request + end + + private + + def create_subscription_on_hubee + hubee_api_client.create_subscription(authorization_request, hubee_organization_payload, process_code, editor_payload) + end + + def editor_organization + @editor_organization ||= Organization.new(service_provider['siret']) + end + + def editor_payload + return {} unless editor_subscription? + + { + delegationActor: { + branchCode: editor_organization.code_commune_etablissement, + companyRegister: editor_organization.siret, + type: 'EDT' + }, + accessMode: 'API' + } + end + + def editor_subscription? + service_provider['type'] == 'editor' + end + + def hubee_api_client + @hubee_api_client ||= HubEEAPIClient.new + end + + def process_code + 'FormulaireQF' + end + + def save_hubee_subscription_id_to_authorization_request + authorization_request.extra_infos['hubee_subscription_id'] = hubee_subscription_payload['id'] + authorization_request.save! + end + + def service_provider + @service_provider ||= Hash(authorization_request.extra_infos['service_provider']) + end +end diff --git a/app/interactors/datapass_webhook/api_particulier/notify_reporters.rb b/app/interactors/datapass_webhook/api_particulier/notify_reporters.rb new file mode 100644 index 000000000..0e1addda4 --- /dev/null +++ b/app/interactors/datapass_webhook/api_particulier/notify_reporters.rb @@ -0,0 +1,34 @@ +class DatapassWebhook::APIParticulier::NotifyReporters < ApplicationInteractor + def call + return if %w[submit approve].exclude?(context.event) + return if groups_to_notify.empty? + + APIParticulier::ReportersMailer.with(groups: groups_to_notify, authorization_request:).send(context.event).deliver_later + end + + private + + def authorization_request + context.authorization_request + end + + def groups_to_notify + reporters_groups_config.select do |group_name| + scopes.any? { |scope| scope.start_with?(group_name.to_s) } + end + end + + def reporters_groups_config + reporters_config.keys + end + + def reporters_config + Rails.application.credentials.api_particulier_reporters || {} + end + + def scopes + context.data['pass']['scopes'].map { |code, bool| + code if bool + }.compact + end +end diff --git a/app/interactors/datapass_webhook/create_or_prolong_token.rb b/app/interactors/datapass_webhook/create_or_prolong_token.rb index cf67e2202..d1c7530cc 100644 --- a/app/interactors/datapass_webhook/create_or_prolong_token.rb +++ b/app/interactors/datapass_webhook/create_or_prolong_token.rb @@ -1,6 +1,11 @@ class DatapassWebhook::CreateOrProlongToken < ApplicationInteractor + before do + context.modalities ||= %w[params] + end + def call return if %w[approve validate].exclude?(context.event) + return if context.modalities.exclude?('params') token = create_or_prolong_token diff --git a/app/interactors/datapass_webhook/find_or_create_authorization_request.rb b/app/interactors/datapass_webhook/find_or_create_authorization_request.rb index 0086ea4b9..3c968ec07 100644 --- a/app/interactors/datapass_webhook/find_or_create_authorization_request.rb +++ b/app/interactors/datapass_webhook/find_or_create_authorization_request.rb @@ -11,6 +11,8 @@ def call # rubocop:disable Metrics/AbcSize create_or_update_contacts_with_roles end + flag_updates_as_requested if expecting_updates? && %w[submit].include?(context.event) + return if context.authorization_request.save fail!('Authorization request not valid', 'error', context.authorization_request.errors.to_hash) @@ -18,6 +20,15 @@ def call # rubocop:disable Metrics/AbcSize private + def flag_updates_as_requested + context.authorization_request.token.last_prolong_token_wizard.update!(status: 'updates_requested') + end + + def expecting_updates? + context.reopening && + context.authorization_request.prolong_token_expecting_updates? + end + def set_reopening_event_flag context.reopening = reopening_event? end @@ -28,7 +39,7 @@ def reopening_event? end def should_update_authorization_request? - !context.reopening || (context.reopening && %w[approve validate].include?(context.event)) + !context.reopening || (context.reopening && %w[transfer approve validate].include?(context.event)) end def create_or_update_contacts_with_roles @@ -63,6 +74,7 @@ def extract_user_from_contact_payload(contact_payload) def authorization_request_attributes context.data['pass'].slice( + 'public_id', 'intitule', 'description', 'demarche', @@ -71,10 +83,17 @@ def authorization_request_attributes ).merge(authorization_request_attributes_for_current_event).merge( 'last_update' => fired_at_as_datetime, 'previous_external_id' => context.data['pass']['copied_from_enrollment_id'], - 'api' => context.api + 'api' => context.api, + 'extra_infos' => extra_infos_with_service_provider ) end + def extra_infos_with_service_provider + context.authorization_request.extra_infos.merge({ + 'service_provider' => Hash(context.data.dig('pass', 'service_provider')) + }) + end + def authorization_request_attributes_for_current_event authorization_request_attributes_for_current_event = {} diff --git a/app/interactors/datapass_webhook/reopen_authorization_request.rb b/app/interactors/datapass_webhook/reopen_authorization_request.rb deleted file mode 100644 index 06bab0c52..000000000 --- a/app/interactors/datapass_webhook/reopen_authorization_request.rb +++ /dev/null @@ -1,19 +0,0 @@ -class DatapassWebhook::ReopenAuthorizationRequest < ApplicationInteractor - def call - return unless context.event == 'reopen' - return unless token_already_exists? - return unless prolong_token_wizard_requires_update? - - context.authorization_request.token.last_prolong_token_wizard.update!(status: 'updates_requested') - end - - private - - def token_already_exists? - context.authorization_request.token.present? - end - - def prolong_token_wizard_requires_update? - context.authorization_request.token.last_prolong_token_wizard.presence && context.authorization_request.token.last_prolong_token_wizard.requires_update? - end -end diff --git a/app/interactors/datapass_webhook/schedule_authorization_request_emails.rb b/app/interactors/datapass_webhook/schedule_authorization_request_emails.rb index cbe284136..3272d8bb3 100644 --- a/app/interactors/datapass_webhook/schedule_authorization_request_emails.rb +++ b/app/interactors/datapass_webhook/schedule_authorization_request_emails.rb @@ -11,7 +11,7 @@ def schedule_email(email_config) return unless condition_on_update_met?(email_config) return unless condition_on_authorization_met?(email_config['condition_on_authorization']) - ScheduleAuthorizationRequestEmailJob.set(wait_until: extract_when_time(email_config['when'])).perform_later( + ScheduleAuthorizationRequestEmailJob.perform_later( context.authorization_request.id, context.authorization_request.status, template_name(email_config), @@ -70,10 +70,6 @@ def default_recipients ['authorization_request.demandeur'] end - def extract_when_time(when_time) - Chronic.parse(when_time) || Time.zone.now - end - def datapass_webhooks_config_for_event datapass_webhooks_config[context.event.to_sym] || { emails: [] } end diff --git a/app/interactors/datapass_webhook/schedule_create_formulaire_qf_resources_job.rb b/app/interactors/datapass_webhook/schedule_create_formulaire_qf_resources_job.rb new file mode 100644 index 000000000..d566d84ac --- /dev/null +++ b/app/interactors/datapass_webhook/schedule_create_formulaire_qf_resources_job.rb @@ -0,0 +1,8 @@ +class DatapassWebhook::ScheduleCreateFormulaireQFResourcesJob < ApplicationInteractor + def call + return unless context.event == 'approve' + return unless context.modalities.include?('formulaire_qf') + + CreateFormulaireQFResourcesJob.perform_later(context.authorization_request.id) + end +end diff --git a/app/interactors/user/find_or_create_new_owner.rb b/app/interactors/user/find_or_create_new_owner.rb deleted file mode 100644 index 9c7b43cdf..000000000 --- a/app/interactors/user/find_or_create_new_owner.rb +++ /dev/null @@ -1,12 +0,0 @@ -class User::FindOrCreateNewOwner < ApplicationInteractor - def call - context.target_user = User.find_or_initialize_by_email(context.target_user_email) - fail!('invalid_email', 'warn', errors) unless context.target_user.save - end - - private - - def errors - context.target_user.errors.to_hash - end -end diff --git a/app/interactors/user/notify_datapass_of_token_ownership.rb b/app/interactors/user/notify_datapass_of_token_ownership.rb deleted file mode 100644 index 30e18eb6b..000000000 --- a/app/interactors/user/notify_datapass_of_token_ownership.rb +++ /dev/null @@ -1,20 +0,0 @@ -class User - class NotifyDatapassOfTokenOwnership < ApplicationInteractor - def call - return unless first_login_after_token_transfer? - - mailer_klass.notify_datapass_for_data_reconciliation(context.user, context.namespace).deliver_later - context.user.update(tokens_newly_transfered: false) - end - - private - - def mailer_klass - "#{context.namespace.classify}::UserMailer".constantize - end - - def first_login_after_token_transfer? - context.user.tokens_newly_transfered? - end - end -end diff --git a/app/interactors/user/notify_new_tokens_owner.rb b/app/interactors/user/notify_new_tokens_owner.rb deleted file mode 100644 index b6e85f048..000000000 --- a/app/interactors/user/notify_new_tokens_owner.rb +++ /dev/null @@ -1,11 +0,0 @@ -class User::NotifyNewTokensOwner < ApplicationInteractor - def call - mailer_klass.transfer_ownership(context.current_owner, context.target_user, context.namespace).deliver_later - end - - private - - def mailer_klass - "#{context.namespace.classify}::UserMailer".constantize - end -end diff --git a/app/interactors/user/transfer_tokens.rb b/app/interactors/user/transfer_tokens.rb deleted file mode 100644 index 2a29b7465..000000000 --- a/app/interactors/user/transfer_tokens.rb +++ /dev/null @@ -1,20 +0,0 @@ -class User::TransferTokens < ApplicationInteractor - def call - context.authorization_requests.each do |authorization_request| - find_or_create_user_role(context.target_user, authorization_request) - context.current_owner.user_authorization_request_roles.where(authorization_request:).delete_all - end - - context.target_user.update(tokens_newly_transfered: true) - end - - private - - def find_or_create_user_role(user, authorization_request) - UserAuthorizationRequestRole.find_or_create_by( - user_id: user.id, - authorization_request_id: authorization_request.id, - role: 'demandeur' - ) - end -end diff --git a/app/jobs/create_formulaire_qf_resources_job.rb b/app/jobs/create_formulaire_qf_resources_job.rb new file mode 100644 index 000000000..b60c13883 --- /dev/null +++ b/app/jobs/create_formulaire_qf_resources_job.rb @@ -0,0 +1,7 @@ +class CreateFormulaireQFResourcesJob < ApplicationJob + def perform(authorization_request_id) + authorization_request = AuthorizationRequest.find(authorization_request_id) + + DatapassWebhook::CreateFormulaireQFResources.call(authorization_request:) + end +end diff --git a/app/jobs/healthcheck_job.rb b/app/jobs/healthcheck_job.rb index 5f8547ffc..7af7dc9f9 100644 --- a/app/jobs/healthcheck_job.rb +++ b/app/jobs/healthcheck_job.rb @@ -7,7 +7,10 @@ def perform http.use_ssl = true if healthcheck_uri.scheme == 'https' http.head(healthcheck_uri.path) + # rubocop:disable Lint/SuppressedException + rescue Socket::ResolutionError end + # rubocop:enable Lint/SuppressedException private diff --git a/app/lib/seeds.rb b/app/lib/seeds.rb index 685c56c9b..b8bf8205d 100644 --- a/app/lib/seeds.rb +++ b/app/lib/seeds.rb @@ -215,6 +215,6 @@ def create_user_authorization_request_role(params = {}) end def load_all_models! - Dir[Rails.root.join('app/models/**/*.rb')].each { |f| require f } + Rails.root.glob('app/models/**/*.rb').each { |f| require f } end end diff --git a/app/mailers/api_entreprise/authorization_request_mailer.rb b/app/mailers/api_entreprise/authorization_request_mailer.rb index 41099ca87..45314b437 100644 --- a/app/mailers/api_entreprise/authorization_request_mailer.rb +++ b/app/mailers/api_entreprise/authorization_request_mailer.rb @@ -4,15 +4,10 @@ class APIEntreprise::AuthorizationRequestMailer < APIEntrepriseMailer include ExternalUrlHelper %w[ - enquete_satisfaction - embarquement_brouillon_en_attente - update_embarquement_brouillon_en_attente embarquement_demande_refusee update_embarquement_demande_refusee embarquement_modifications_demandees update_embarquement_modifications_demandees - embarquement_relance_modifications_demandees - update_embarquement_relance_modifications_demandees embarquement_valide_to_editeur embarquement_valide_to_demandeur_is_tech_is_metier embarquement_valide_to_demandeur_seulement @@ -23,8 +18,6 @@ class APIEntreprise::AuthorizationRequestMailer < APIEntrepriseMailer update_embarquement_valide_to_demandeur demande_recue update_demande_recue - reassurance_demande_recue - update_reassurance_demande_recue ].each do |method| send('define_method', method) do |args| @all_scopes = I18n.t('api_entreprise.tokens.token.scope') diff --git a/app/mailers/api_entreprise/user_mailer.rb b/app/mailers/api_entreprise/user_mailer.rb deleted file mode 100644 index 97150c9b0..000000000 --- a/app/mailers/api_entreprise/user_mailer.rb +++ /dev/null @@ -1,3 +0,0 @@ -class APIEntreprise::UserMailer < APIEntrepriseMailer - include UserMailerCommons -end diff --git a/app/mailers/api_particulier/authorization_request_mailer.rb b/app/mailers/api_particulier/authorization_request_mailer.rb index fd736eb08..be01a15ba 100644 --- a/app/mailers/api_particulier/authorization_request_mailer.rb +++ b/app/mailers/api_particulier/authorization_request_mailer.rb @@ -2,26 +2,18 @@ class APIParticulier::AuthorizationRequestMailer < APIParticulierMailer include ExternalUrlHelper %w[ - embarquement_brouillon_en_attente - update_embarquement_brouillon_en_attente demande_recue update_demande_recue - reassurance_demande_recue - update_reassurance_demande_recue embarquement_demande_refusee embarquement_modifications_demandees - embarquement_relance_modifications_demandees update_embarquement_demande_refusee update_embarquement_modifications_demandees - update_embarquement_relance_modifications_demandees embarquement_valide_to_demandeur_is_tech embarquement_valide_to_demandeur_seulement embarquement_valide_to_tech_cc_demandeur update_embarquement_valide_to_demandeur - - enquete_satisfaction ].each do |method| send('define_method', method) do |args| @all_scopes = I18n.t('api_particulier.tokens.token.scope') diff --git a/app/mailers/api_particulier/reporters_mailer.rb b/app/mailers/api_particulier/reporters_mailer.rb new file mode 100644 index 000000000..cb47bb9dd --- /dev/null +++ b/app/mailers/api_particulier/reporters_mailer.rb @@ -0,0 +1,50 @@ +class APIParticulier::ReportersMailer < APIParticulierMailer + skip_before_action :attach_logos + + helper_method :datapass_v2_public_authorization_request_url + + %w[ + submit + approve + ].each do |event| + define_method(event) do + return if reporters_config.blank? + + groups = params[:groups].map(&:to_sym) + + return if reporter_emails(groups).empty? + + @authorization_request = params[:authorization_request] + + mail( + bcc: reporter_emails(groups), + subject: t('.subject') + ) + end + end + + private + + def datapass_v2_public_authorization_request_url(authorization_request) + "#{datapass_v2_base_url(authorization_request.api)}/public/demandes/#{authorization_request.public_id}" + end + + def datapass_v2_base_url(api) + case Rails.env + when 'staging' + "https://staging.api-#{api}.v2.datapass.api.gouv.fr" + when 'sandbox' + "https://sandbox.api-#{api}.v2.datapass.api.gouv.fr" + else + "https://api-#{api}.v2.datapass.api.gouv.fr" + end + end + + def reporter_emails(groups) + reporters_config.values_at(*groups).flatten + end + + def reporters_config + Rails.application.credentials.api_particulier_reporters + end +end diff --git a/app/mailers/api_particulier/user_mailer.rb b/app/mailers/api_particulier/user_mailer.rb deleted file mode 100644 index 4437d80b6..000000000 --- a/app/mailers/api_particulier/user_mailer.rb +++ /dev/null @@ -1,3 +0,0 @@ -class APIParticulier::UserMailer < APIParticulierMailer - include UserMailerCommons -end diff --git a/app/mailers/concerns/user_mailer_commons.rb b/app/mailers/concerns/user_mailer_commons.rb deleted file mode 100644 index 2486a8121..000000000 --- a/app/mailers/concerns/user_mailer_commons.rb +++ /dev/null @@ -1,27 +0,0 @@ -module UserMailerCommons - include FriendlyDateHelper - - def transfer_ownership(old_owner, new_owner, namespace) - @new_owner = new_owner - @old_owner = old_owner - @login_url = "https://#{api(namespace)}.api.gouv.fr/compte/se-connecter" - @datapass_signup_url = 'https://app.moncomptepro.beta.gouv.fr/users/sign-up' - subject = "#{I18n.t("#{namespace}.name")} - Délégation d'accès" - - mail(to: @new_owner.email, subject:) - end - - def notify_datapass_for_data_reconciliation(user, namespace) - @user = user - @datapass_ids = user.authorization_requests.map(&:external_id).map(&:to_i) - - dest_address = 'datapass@api.gouv.fr' - subject = "#{I18n.t("#{namespace}.name")} - Réconciliation de demandes d'accès à un nouvel usager" - - mail(to: dest_address, subject:) - end - - def api(namespace) - namespace.slice(4..-1) - end -end diff --git a/app/models/abstract_blog_post.rb b/app/models/abstract_blog_post.rb index 2729dffe1..21eae25c8 100644 --- a/app/models/abstract_blog_post.rb +++ b/app/models/abstract_blog_post.rb @@ -21,6 +21,6 @@ def self.all end def self.blog_posts_files - Dir[Rails.root.join('config/blog_posts', api, '*.md')] + Rails.root.glob("config/blog_posts/#{api}/*.md") end end diff --git a/app/models/abstract_endpoint.rb b/app/models/abstract_endpoint.rb index 3180d3a60..eef6cc164 100644 --- a/app/models/abstract_endpoint.rb +++ b/app/models/abstract_endpoint.rb @@ -5,6 +5,7 @@ class AbstractEndpoint < ApplicationAlgoliaSearchableActiveModel attr_accessor :uid, :path, :beta, + :alert, :novelty, :ping_url, :new_version, @@ -20,15 +21,13 @@ class AbstractEndpoint < ApplicationAlgoliaSearchableActiveModel attr_writer :new_endpoint_uids, :old_endpoint_uids algoliasearch_active_model do - attributes :title, :description, :deprecated, :provider_uids, :keywords, :use_cases, :use_cases_optional + attributes :title, :description, :deprecated, :provider_uids, :keywords searchableAttributes %w[ title description provider_uids keywords - use_cases - use_cases_optional ] attributesForFaceting %w[deprecated] diff --git a/app/models/api_entreprise/endpoint.rb b/app/models/api_entreprise/endpoint.rb index 8b947dd84..62dbb5532 100644 --- a/app/models/api_entreprise/endpoint.rb +++ b/app/models/api_entreprise/endpoint.rb @@ -8,7 +8,7 @@ class APIEntreprise::Endpoint < AbstractEndpoint def initialize(params) super - load_dummy_definition! if open_api_definition.blank? || response_schema.blank? || force_dummy_load? + load_dummy_definition! if open_api_definition.blank? || response_schema.blank? end def maintenances @@ -24,7 +24,7 @@ def root_meta end def custom_provider_errors - @custom_provider_errors ||= error_examples('502').reject do |error_payload| + @custom_provider_errors ||= error_examples('502').reject { |error_payload| %w[ 000 051 @@ -34,21 +34,30 @@ def custom_provider_errors 055 999 ].include?(error_payload['code'][2..]) + }.concat(extra_provider_errors).flatten + end + + def extra_provider_errors + all_extra_provider_errors.map do |extra_provider_error| + error_examples(extra_provider_error[:status]).select do |error_payload| + error_payload['code'] == extra_provider_error[:subcode] + end end end - def force_dummy_load? - %w[ - /v3/inpi/unites_legales/{siren}/actes - ].include?(path) + def all_extra_provider_errors + [{ status: '404', subcode: '38422' }] end def load_dummy_definition! - missing_endpoints_definition = I18n.t("api_entreprise.missing_endpoints.#{path}") - raise 'Endpoint(s) not found, check endpoints paths are available in OpenAPI file or in missing_endpoints.yml' if missing_endpoints_definition.nil? + missing_endpoints_definition = I18n.t("api_entreprise.missing_endpoints.#{path}", default: nil) + + raise "Endpoint(s) #{path} not found, check endpoints paths are available in OpenAPI file or in missing_endpoints.yml" if missing_endpoints_definition.nil? @open_api_definition = missing_endpoints_definition.stringify_keys @dummy_definition = true + rescue I18n::MissingTranslationData + raise "There is no #{path} definition in OpenAPI file. Make sure path is valid or add the temporary data in config/locales/*/missing_endpoints.fr.yml" end def dummy? diff --git a/app/models/authorization_request.rb b/app/models/authorization_request.rb index 52dffdee6..d9afc014e 100644 --- a/app/models/authorization_request.rb +++ b/app/models/authorization_request.rb @@ -37,7 +37,7 @@ def self.ransackable_attributes(_) scope :not_archived, -> { where.not(status: 'archived') } scope :archived, -> { where(status: 'archived') } scope :for_api, ->(api) { where(api:) } - scope :viewable_by_users, -> { where(status: %w[archived revoked validated]) } + scope :viewable_by_users, -> { where('status in (?) or validated_at is not null', %w[archived revoked validated]) } def token active_token || most_recent_token @@ -76,6 +76,10 @@ def most_recent_token has_one :contact_technique, through: :contact_technique_authorization_request_role has_one :contact_metier, through: :contact_metier_authorization_request_role + def organization + @organization ||= Organization.new(siret) + end + def contacts_no_demandeur contacts.reject { |user| user == demandeur } end @@ -93,4 +97,9 @@ def revoke! update!(status: 'revoked') end + + def prolong_token_expecting_updates? + token&.last_prolong_token_wizard.present? && + token.last_prolong_token_wizard.requires_update? + end end diff --git a/app/models/organization.rb b/app/models/organization.rb new file mode 100644 index 000000000..d3bb2917f --- /dev/null +++ b/app/models/organization.rb @@ -0,0 +1,37 @@ +class Organization + attr_reader :siret + + def initialize(siret) + @siret = siret + end + + def denomination + unite_legale_insee_payload['denominationUniteLegale'] + end + + def code_commune_etablissement + adresse_etablissement_insee_payload['codeCommuneEtablissement'] + end + + def code_postal_etablissement + adresse_etablissement_insee_payload['codePostalEtablissement'] + end + + private + + def adresse_etablissement_insee_payload + etablissement_insee_payload['adresseEtablissement'] + end + + def etablissement_insee_payload + insee_payload['etablissement'] + end + + def unite_legale_insee_payload + etablissement_insee_payload['uniteLegale'] + end + + def insee_payload + @insee_payload ||= INSEESireneAPIClient.new.etablissement(siret:) + end +end diff --git a/app/models/prolong_token_wizard.rb b/app/models/prolong_token_wizard.rb index 90e96905e..b7b7735a1 100644 --- a/app/models/prolong_token_wizard.rb +++ b/app/models/prolong_token_wizard.rb @@ -4,7 +4,7 @@ class ProlongTokenWizard < ApplicationRecord delegate :prolong!, to: :token delegate :authorization_request, to: :token - enum status: { + enum :status, { owner: 0, project_purpose: 10, contacts: 20, diff --git a/app/organizers/api_entreprise/user/o_auth_login.rb b/app/organizers/api_entreprise/user/o_auth_login.rb index a5b1d1eff..f54a54dd4 100644 --- a/app/organizers/api_entreprise/user/o_auth_login.rb +++ b/app/organizers/api_entreprise/user/o_auth_login.rb @@ -1,5 +1,4 @@ class APIEntreprise::User::OAuthLogin < ApplicationOrganizer organize User::FindOrCreateThroughOAuth, - User::UpdateOAuthAPIGouvId, - User::NotifyDatapassOfTokenOwnership + User::UpdateOAuthAPIGouvId end diff --git a/app/organizers/api_particulier/user/o_auth_login.rb b/app/organizers/api_particulier/user/o_auth_login.rb index c8a825c23..1fa7e24ce 100644 --- a/app/organizers/api_particulier/user/o_auth_login.rb +++ b/app/organizers/api_particulier/user/o_auth_login.rb @@ -1,5 +1,4 @@ class APIParticulier::User::OAuthLogin < ApplicationOrganizer organize User::FindOrCreateThroughOAuth, - User::UpdateOAuthAPIGouvId, - User::NotifyDatapassOfTokenOwnership + User::UpdateOAuthAPIGouvId end diff --git a/app/organizers/datapass_webhook/api_entreprise.rb b/app/organizers/datapass_webhook/api_entreprise.rb index 05933f752..c03305c76 100644 --- a/app/organizers/datapass_webhook/api_entreprise.rb +++ b/app/organizers/datapass_webhook/api_entreprise.rb @@ -10,7 +10,6 @@ class APIEntreprise < ApplicationOrganizer ::DatapassWebhook::ArchivePreviousAuthorizationRequest, ::DatapassWebhook::ArchiveCurrentAuthorizationRequest, ::DatapassWebhook::RefuseCurrentAuthorizationRequest, - ::DatapassWebhook::ReopenAuthorizationRequest, ::DatapassWebhook::RevokeCurrentToken, ::DatapassWebhook::UpdateMailjetContacts, ::DatapassWebhook::ExtractMailjetVariables, diff --git a/app/organizers/datapass_webhook/api_particulier.rb b/app/organizers/datapass_webhook/api_particulier.rb index b3ada3b70..f5328703c 100644 --- a/app/organizers/datapass_webhook/api_particulier.rb +++ b/app/organizers/datapass_webhook/api_particulier.rb @@ -8,6 +8,8 @@ class APIParticulier < ApplicationOrganizer } context.api = 'particulier' + context.authorization_request_data ||= {} + context.modalities = context.authorization_request_data['modalities'].presence || %w[params] end organize ::DatapassWebhook::FindOrCreateUser, @@ -15,10 +17,11 @@ class APIParticulier < ApplicationOrganizer ::DatapassWebhook::CreateOrProlongToken, ::DatapassWebhook::ArchiveCurrentAuthorizationRequest, ::DatapassWebhook::RefuseCurrentAuthorizationRequest, - ::DatapassWebhook::ReopenAuthorizationRequest, ::DatapassWebhook::RevokeCurrentToken, ::DatapassWebhook::UpdateMailjetContacts, + ::DatapassWebhook::ScheduleCreateFormulaireQFResourcesJob, ::DatapassWebhook::ExtractMailjetVariables, - ::DatapassWebhook::ScheduleAuthorizationRequestEmails + ::DatapassWebhook::ScheduleAuthorizationRequestEmails, + ::DatapassWebhook::APIParticulier::NotifyReporters end end diff --git a/app/organizers/datapass_webhook/create_formulaire_qf_resources.rb b/app/organizers/datapass_webhook/create_formulaire_qf_resources.rb new file mode 100644 index 000000000..3d26751cb --- /dev/null +++ b/app/organizers/datapass_webhook/create_formulaire_qf_resources.rb @@ -0,0 +1,18 @@ +class DatapassWebhook::CreateFormulaireQFResources < ApplicationOrganizer + organize DatapassWebhook::APIParticulier::CreateHubEEOrganization, + DatapassWebhook::APIParticulier::CreateHubEESubscription, + DatapassWebhook::APIParticulier::CreateFormulaireQFCollectivity + + around do |interactor| + interactor.call + rescue StandardError => e + Sentry.set_context( + 'DataPass webhook: create FormulaireQF resources', + payload: { + authorization_request_id: context.authorization_request.id + } + ) + + Sentry.capture_exception(e) + end +end diff --git a/app/organizers/user/transfer_account.rb b/app/organizers/user/transfer_account.rb deleted file mode 100644 index fb460975e..000000000 --- a/app/organizers/user/transfer_account.rb +++ /dev/null @@ -1,12 +0,0 @@ -class User::TransferAccount < ApplicationOrganizer - organize User::FindOrCreateNewOwner, - User::TransferTokens, - User::NotifyNewTokensOwner - - after do - Sentry.set_extras( - current_owner_id: context.current_owner.id - ) - Sentry.capture_message('User::TransferAccount completed', level: :info) - end -end diff --git a/app/services/abstract_open_api_definition.rb b/app/services/abstract_open_api_definition.rb index af4aa7686..e2ba766cb 100644 --- a/app/services/abstract_open_api_definition.rb +++ b/app/services/abstract_open_api_definition.rb @@ -38,13 +38,17 @@ def open_api_without_deprecated_paths_definition_content backend.merge('paths' => paths).to_yaml end - # rubocop:disable Security/Open def open_api_definition_content + open_api_remote_url_definition_content(remote_url) + end + + # rubocop:disable Security/Open + def open_api_remote_url_definition_content(url) if load_local? local_path.read else - Rails.cache.fetch(remote_url, expires_in: 1.hour) do - URI.open(remote_url).read + Rails.cache.fetch(url, expires_in: 1.hour) do + URI.open(url).read end end rescue StandardError, OpenURI::HTTPError => e diff --git a/app/services/api_particulier/open_api_definition.rb b/app/services/api_particulier/open_api_definition.rb index 2b949e0c2..cc3e43943 100644 --- a/app/services/api_particulier/open_api_definition.rb +++ b/app/services/api_particulier/open_api_definition.rb @@ -1,10 +1,24 @@ class APIParticulier::OpenAPIDefinition < AbstractOpenAPIDefinition + def open_api_v3_definition_content + open_api_remote_url_definition_content(remote_url_v3) + end + protected def local_path Rails.root.join('config/api-particulier-openapi.yml') end + def remote_url_v3 + if Rails.env.sandbox? + 'https://sandbox.particulier.api.gouv.fr/api/open-api-v3.yml' + elsif Rails.env.staging? || Rails.env.development? + 'https://staging.particulier.api.gouv.fr/api/open-api-v3.yml' + else + 'https://particulier.api.gouv.fr/api/open-api-v3.yml' + end + end + def remote_url if Rails.env.sandbox? 'https://sandbox.particulier.api.gouv.fr/api/open-api.yml' diff --git a/app/services/open_bureau_date.rb b/app/services/open_bureau_date.rb index b20033129..7b9e025a9 100644 --- a/app/services/open_bureau_date.rb +++ b/app/services/open_bureau_date.rb @@ -2,36 +2,48 @@ class OpenBureauDate include DateAndTime::Calculations def next_date + date = next_theoretical_date + + date = date.next_occurring(:tuesday).next_occurring(:tuesday) while cancelled_dates.include?(date) + + date + end + + private + + def next_theoretical_date return Time.zone.today if open_bureau_today? next_tuesday = Time.zone.today.next_occurring(:tuesday) - if first_or_third_in_month?(next_tuesday) - next_tuesday - else - next_tuesday + 7 - end + return next_tuesday if first_or_third_tuesday_in_month?(next_tuesday) + + next_tuesday.next_occurring(:tuesday) end - private + def cancelled_dates + YAML.load_file(Rails.root.join('config/cancelled_open_bureau_dates.yml')).map(&:to_date) + end def open_bureau_today? today = Time.zone.today - today.tuesday? && first_or_third_in_month?(today) && before_open_bureau_time? + today.tuesday? && first_or_third_tuesday_in_month?(today) && before_open_bureau_time? end def before_open_bureau_time? Time.zone.now < '11:00 am'.in_time_zone(Time.zone) end - def first_or_third_in_month?(tuesday) - first_day_month = tuesday.at_beginning_of_month + def first_or_third_tuesday_in_month?(date) + return false unless date.tuesday? + + first_of_month = date.beginning_of_month - return true if first_day_month.tuesday? + first_tuesday = first_of_month + ((2 - first_of_month.wday) % 7) - first_tuesday_after_beginning_month = first_day_month.next_occurring(:tuesday) + third_tuesday = first_tuesday.next_occurring(:tuesday).next_occurring(:tuesday) - first_tuesday_after_beginning_month == tuesday || (first_tuesday_after_beginning_month + 14) == tuesday + date == first_tuesday || date == third_tuesday end end diff --git a/app/services/status_page.rb b/app/services/status_page.rb index 123fce8bd..772464038 100644 --- a/app/services/status_page.rb +++ b/app/services/status_page.rb @@ -32,7 +32,7 @@ def raw_current_status def retrieve_from_status_page status = page_config_data['globals']['topLevelStatus']['status'] - cache.write(cache_key, status, expires_in: 5.minutes.to_i) + cache.write(cache_key, status, expires_in: 60.minutes.to_i) status end @@ -44,7 +44,7 @@ def page_config_data end def page_config_data_body - URI.parse(page_config_data_url).open.read + URI.parse(page_config_data_url).open(open_timeout: 10, read_timeout: 10).read end def page_config_data_url diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/users/index.html.erb index 7248c1159..4926380cd 100644 --- a/app/views/admin/users/index.html.erb +++ b/app/views/admin/users/index.html.erb @@ -79,7 +79,7 @@ <%= button_to 'Se connecter en tant que cet utilisateur', impersonate_admin_user_path(user), data: { turbo: false }, class: 'fr-btn', id: dom_id(user, :impersonate) %> <% end %> - + <% end %> diff --git a/app/views/api_entreprise/authorization_request_mailer/_enquete_satisfaction.html b/app/views/api_entreprise/authorization_request_mailer/_enquete_satisfaction.html deleted file mode 100644 index 4bf09493a..000000000 --- a/app/views/api_entreprise/authorization_request_mailer/_enquete_satisfaction.html +++ /dev/null @@ -1,436 +0,0 @@ - - -
-
-
-
-
-
-
|
-
- Nous nous permettons de vous relancer car notre service instructeur n'a pas encore reçu de réponse concernant - les - - demandes de modifications de votre demande d’habilitation API Entreprise n°<%= - @authorization_request.external_id %>. - - Il nous manque ces informations pour rendre un avis. -
-- Répondez à notre instructeur depuis l'interface du formulaire - pour soumettre vos modifications et appuyez sur le bouton "Soumettre la demande" : -
-
- À bientôt 👋
-
- API Entreprise
-
- Il y a un mois, vous obteniez un accès 🔑 à l'API Entreprise dans le - cadre d'utilisation "<%= @authorization_request.intitule %>". -
-- Nous vous envoyons ce mail pour - savoir si tout va bien - . Le questionnaire suivant, vous permettra de nous transmettre - votre avis, vos besoins et vos manques : -
-
- À bientôt 👋
-
- L'équipe API Entreprise
-
-
- Votre demande d’habilitation API Entreprise n°<%= @authorization_request.external_id %> est en cours de
- traitement par notre service juridique.
-
-
- Vous devriez donc recevoir une réponse de notre part dans les prochains jours.
-
- 📝 Vous pouvez continuer à consulter et modifier votre demande à tout moment en suivant le lien suivant ➡️ - - <%= @authorization_request_datapass_url %> - -
-À bientôt 👋
-- Nous nous permettons de vous relancer car notre service instructeur n'a pas encore reçu de réponse concernant - - les modifications à apporter à votre demande de mise à jour de l'habilitation API Entreprise n°<%= - @authorization_request.external_id %>. - - Il nous manque ces informations pour rendre un avis. -
-
- À bientôt 👋
-
- API Entreprise
-
-
- Votre demande de mise à jour de l'habilitation API Entreprise n°<%= @authorization_request.external_id %> est en cours de
- traitement par notre service juridique.
-
-
- Vous devriez donc recevoir une réponse de notre part dans les prochains jours.
-
À bientôt 👋
-<%= @endpoint.description %> - - <%= icon(t("endpoint.opening.#{@endpoint.opening}.included_icon", raise: true)) rescue nil %> - <%= link_to t("endpoint.opening.#{@endpoint.opening}.included", raise: true), faq_index_path(anchor: 'qu-est-ce-que-les-api-incluses-par-defaut') rescue nil %> - + + + <%= icon(t("endpoint.opening.#{@endpoint.opening}.included_icon", raise: true)) rescue nil %> + <%= link_to t("endpoint.opening.#{@endpoint.opening}.included", raise: true), faq_index_path(anchor: 'qu-est-ce-que-les-api-incluses-par-defaut') rescue nil %> + <% if @endpoint.incoming? %>
- <% @endpoint.providers.map do |provider| %> - <%= t("providers.#{provider.name}") %> - <% end.join(' & ') %> -
+ <% provider_names = @endpoint.providers.map do |provider| %> + <%= provider.name %> + <% end %> + + <%= provider_names.join(' & ') %> +
+ <%= markdown_to_html(@endpoint.alert['description']) %> +
+Le jeton est émis avec une durée de vie de 18 mois, son expiration est programmée à cette date sauf en cas de révocation précoce. Trois mois avant l’expiration, diff --git a/app/views/api_entreprise/pages/home/_section_developers.html.erb b/app/views/api_entreprise/pages/home/_section_developers.html.erb index 350d1203e..40577c52b 100644 --- a/app/views/api_entreprise/pages/home/_section_developers.html.erb +++ b/app/views/api_entreprise/pages/home/_section_developers.html.erb @@ -46,8 +46,30 @@
-
-
-
-
-
|
-
- Nous nous permettons de vous relancer car notre service instructeur n'a pas encore reçu de réponse concernant - les - - demandes de modifications de votre demande d’habilitation API Particulier n°<%= - @authorization_request.external_id %>. - - Il nous manque ces informations pour rendre un avis. -
-- Répondez à notre instructeur depuis l'interface du formulaire - pour soumettre vos modifications et appuyez sur le bouton "Soumettre la demande" : -
-
- À bientôt 👋
-
- API Particulier
-
- Il y a un mois, vous obteniez un accès 🔑 à l'API Particulier dans le - cadre d'utilisation "<%= @authorization_request.intitule %>". -
-- Nous vous envoyons ce mail pour - savoir si tout va bien - . Le questionnaire suivant, vous permettra de nous transmettre - votre avis, vos besoins et vos manques : -
-
- À bientôt 👋
-
- L'équipe API Particulier
-
-
- Votre demande d’habilitation API Particulier n°<%= @authorization_request.external_id %> est en cours de
- traitement par notre service juridique.
-
-
- Vous devriez donc recevoir une réponse de notre part dans les prochains jours.
-
- 📝 Vous pouvez continuer à consulter et modifier votre demande à tout moment en suivant le lien suivant ➡️ - - <%= @authorization_request_datapass_url %> - -
-À bientôt 👋
-- Nous nous permettons de vous relancer car notre service instructeur n'a pas encore reçu de réponse concernant - - les modifications à apporter à votre demande de mise à jour de l'habilitation API Particulier n°<%= - @authorization_request.external_id %>. - - Il nous manque ces informations pour rendre un avis. -
-
- À bientôt 👋
-
- API Particulier
-
-
- Votre demande de mise à jour de l'habilitation API Particulier n°<%= @authorization_request.external_id %> est en cours de
- traitement par notre service juridique.
-
-
- Vous devriez donc recevoir une réponse de notre part dans les prochains jours.
-
À bientôt 👋
-- <% @endpoint.providers.map do |provider| %> - <%= t("providers.#{provider.name}") %> - <% end.join(' & ') %> -
+ <% provider_names = @endpoint.providers.map do |provider| %> + <%= provider.name %> + <% end %> + + <%= provider_names.join(' & ') %> +
+ <%= markdown_to_html(@endpoint.alert['description']) %> +
+diff --git a/app/views/api_particulier/faq/index.html.erb b/app/views/api_particulier/faq/index.html.erb index 57986af78..53c79d023 100644 --- a/app/views/api_particulier/faq/index.html.erb +++ b/app/views/api_particulier/faq/index.html.erb @@ -1,4 +1,4 @@ -
+ La liste des habilitations ci-dessous concernent les groupes de données suivants : + +
- <% if action_name == 'developers'%> - <%= t('.banner.tech', date: OpenBureauDate.new.next_date.strftime('%d/%m/%Y')).html_safe %> - <% else %> - <%= t('.banner.default', date: OpenBureauDate.new.next_date.strftime('%d/%m/%Y')).html_safe %> - <% end %> -
+ <% if Date.today >= Date.new(2024, 8, 21) %> ++ <% if action_name == 'developers'%> + <%= t('.banner.tech', date: OpenBureauDate.new.next_date.strftime('%d/%m/%Y')).html_safe %> + <% else %> + <%= t('.banner.default', date: OpenBureauDate.new.next_date.strftime('%d/%m/%Y')).html_safe %> + <% end %> +
+- <%= t('.description', api_name: api_name).html_safe %> -
++ <%= t('.description', api_name: api_name).html_safe %> +
++ <%= t('.description', api_name: api_name).html_safe %> +
+- - Qu’est-ce que MonComptePro ? + + Qu’est-ce que ProConnect ?
<% end %> diff --git a/app/views/shared/tokens/_detail.html.erb b/app/views/shared/tokens/_detail.html.erb index 1ffafdff0..516de4c52 100644 --- a/app/views/shared/tokens/_detail.html.erb +++ b/app/views/shared/tokens/_detail.html.erb @@ -3,25 +3,22 @@"> <%= t(".status.label.#{token.status}") %>
- - idenfitiant: <%= token.id %> - | <%= t('.call_for_a_week', count: token.access_logs.since(7.days.ago).count) %> <%= link_to t('.links.stats'), token_stats_path(token), id: dom_id(token, :stats_link), class: %w(fr-link fr-link--sm fr-icon-arrow-right-line fr-link--icon-right pull-right) %>- <%= t(".remaining_time.#{token.status}", + <%= t(".remaining_time.#{token.status}", remaining_time: distance_of_time_in_words(Time.zone.now, token.end_timestamp) ).html_safe %>
"> <%= t(".status.label.#{token.status}") %> -
+ - | <%= t(".expiration_date", + | <%= t(".expiration_date", expiration_date: friendly_date_from_timestamp(token.end_timestamp) ).html_safe %> -- ID: <%= token.id %> -
<%= t('.description', link_to_datapass: link_to( - t('shared.links.to_datapass', external_id: @token.authorization_request.external_id).html_safe, - datapass_authorization_request_url(@token.authorization_request), + t('shared.links.to_datapass', external_id: @token.authorization_request.external_id).html_safe, + datapass_authorization_request_url(@token.authorization_request), id: :authorization_request_link, - class: %w(fr-link), + class: %w(fr-link), target: '_blank'), remaining_time: distance_of_time_in_words(Time.zone.now, @token.end_timestamp) ).html_safe %> diff --git a/app/views/shared/transfer_user_account/_new.html.erb b/app/views/shared/transfer_user_account/_new.html.erb deleted file mode 100644 index 917c1b2ab..000000000 --- a/app/views/shared/transfer_user_account/_new.html.erb +++ /dev/null @@ -1,25 +0,0 @@ -<%= form_with url: transfer_account_path, method: :post, id: :transfer_account_form, data: { turbo_frame: '_top' } do |form| %> -
<%= t('.description', api: t("#{namespace}.api")).html_safe %>
- -- <%= t('.transfer_account.description_if_demandeur').html_safe %> -
- - - <%= t('.transfer_account.cta') %> - -- <%= t('.transfer_account.description_if_demandeur_transfer_not_all', api: t("#{namespace}.api")).html_safe %> + <%= t('.transfer_account.description_if_demandeur', api: namespace.gsub('_', '-')).html_safe %>
diff --git a/bin/download_latest_open_api_definitions.sh b/bin/download_latest_open_api_definitions.sh index f81955169..99b4c2fcd 100755 --- a/bin/download_latest_open_api_definitions.sh +++ b/bin/download_latest_open_api_definitions.sh @@ -3,5 +3,8 @@ wget "https://particulier.api.gouv.fr/api/open-api.yml" \ -O config/api-particulier-openapi.yml +wget "https://particulier.api.gouv.fr/api/open-api-v3.yml" \ + -O config/api-particulier-openapi-v3.yml + wget "https://entreprise.api.gouv.fr/v3/openapi-entreprise.yaml" \ -O config/api-entreprise-v3-openapi.yml diff --git a/config/api-entreprise-v3-openapi.yml b/config/api-entreprise-v3-openapi.yml index 5308411ff..e7c420912 100644 --- a/config/api-entreprise-v3-openapi.yml +++ b/config/api-entreprise-v3-openapi.yml @@ -9,7 +9,7 @@ info: d'une clé d'accès (jeton).\n\n### Comment tester l'API ?\n\nIl est possible de tester les API via notre environnement de **staging** qui vous retournera systématiquement des données fictives. Référez vous à la [documentation](https://entreprise.api.gouv.fr/developpeurs#tester-api-preproduction).\n\nIl - est nécessaire d'utiliser le jeton de staging indiqué ci-dessous.\n\n---\n\n*eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJqdGkiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY29wZXMiOlsidXB0aW1lIiwiYXNzb2NpYXRpb25zIiwib3Blbl9kYXRhIiwiYXR0ZXN0YXRpb25zX2FnZWZpcGgiLCJwcm9idHAiLCJjb3Rpc2F0aW9uc19wcm9idHAiLCJhdHRlc3RhdGlvbnNfZmlzY2FsZXMiLCJhdHRlc3RhdGlvbl9maXNjYWxlX2RnZmlwIiwiYXR0ZXN0YXRpb25zX3NvY2lhbGVzIiwiYXR0ZXN0YXRpb25fc29jaWFsZV91cnNzYWYiLCJiaWxhbnNfZW50cmVwcmlzZV9iZGYiLCJiaWxhbnNfYmRmIiwiZm50cF9jYXJ0ZV9wcm8iLCJjZXJ0aWZpY2F0X2NuZXRwIiwiY2VydGlmaWNhdGlvbl9jbmV0cCIsImNlcnRpZmljYXRfb3BxaWJpIiwicXVhbGliYXQiLCJjZXJ0aWZpY2F0X3JnZV9hZGVtZSIsImRvY3VtZW50c19hc3NvY2lhdGlvbiIsImVudHJlcHJpc2VzIiwidW5pdGVzX2xlZ2FsZXNfZXRhYmxpc3NlbWVudHNfaW5zZWUiLCJldGFibGlzc2VtZW50cyIsImV4ZXJjaWNlcyIsImNoaWZmcmVfYWZmYWlyZXNfZGdmaXAiLCJleHRyYWl0c19yY3MiLCJsaWFzc2VfZmlzY2FsZSIsImxpYXNzZXNfZmlzY2FsZXNfZGdmaXAiLCJjZXJ0aWZpY2F0aW9uc19xdWFsaW9waV9mcmFuY2VfY29tcGV0ZW5jZXMiLCJlb3JpX2RvdWFuZXMiLCJjb252ZW50aW9uc19jb2xsZWN0aXZlcyIsIm1hbmRhdGFpcmVzX3NvY2lhdXhfaW5mb2dyZWZmZSIsImFjdGVzX2lucGkiLCJleHRyYWl0X2NvdXJ0X2lucGkiLCJhc3NvY2lhdGlvbnNfZG9ubmVlc19wcm90ZWdlZXMiLCJhc3NvY2lhdGlvbnNfZGplcHZhIiwibXNhX2NvdGlzYXRpb25zIiwiY290aXNhdGlvbnNfbXNhIiwiY2VydGlmaWNhdGlvbl9vcHFpYmkiLCJlbnRyZXByaXNlc19hcnRpc2FuYWxlcyIsImVmZmVjdGlmc191cnNzYWYiLCJjbmFmX3F1b3RpZW50X2ZhbWlsaWFsIiwiY25hZl9hbGxvY2F0YWlyZXMiLCJjbmFmX2VuZmFudHMiLCJjbmFmX2FkcmVzc2UiLCJjb21wbGVtZW50YWlyZV9zYW50ZV9zb2xpZGFpcmUiLCJjbm91c19zdGF0dXRfYm91cnNpZXIiLCJjbm91c19lY2hlbG9uX2JvdXJzZSIsImNub3VzX2VtYWlsIiwiY25vdXNfcGVyaW9kZV92ZXJzZW1lbnQiLCJjbm91c19zdGF0dXRfYm91cnNlIiwiY25vdXNfdmlsbGVfZXR1ZGVzIiwiY25vdXNfaWRlbnRpdGUiLCJkZ2ZpcF9kZWNsYXJhbnQxX25vbSIsImRnZmlwX2RlY2xhcmFudDFfbm9tX25haXNzYW5jZSIsImRnZmlwX2RlY2xhcmFudDFfcHJlbm9tcyIsImRnZmlwX2RlY2xhcmFudDFfZGF0ZV9uYWlzc2FuY2UiLCJkZ2ZpcF9kZWNsYXJhbnQyX25vbSIsImRnZmlwX2RlY2xhcmFudDJfbm9tX25haXNzYW5jZSIsImRnZmlwX2RlY2xhcmFudDJfcHJlbm9tcyIsImRnZmlwX2RlY2xhcmFudDJfZGF0ZV9uYWlzc2FuY2UiLCJkZ2ZpcF9kYXRlX3JlY291dnJlbWVudCIsImRnZmlwX2RhdGVfZXRhYmxpc3NlbWVudCIsImRnZmlwX2FkcmVzc2VfZmlzY2FsZV90YXhhdGlvbiIsImRnZmlwX2FkcmVzc2VfZmlzY2FsZV9hbm5lZSIsImRnZmlwX25vbWJyZV9wYXJ0cyIsImRnZmlwX25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2UiLCJkZ2ZpcF9zaXR1YXRpb25fZmFtaWxpYWxlIiwiZGdmaXBfcmV2ZW51X2JydXRfZ2xvYmFsIiwiZGdmaXBfcmV2ZW51X2ltcG9zYWJsZSIsImRnZmlwX2ltcG90X3JldmVudV9uZXRfYXZhbnRfY29ycmVjdGlvbnMiLCJkZ2ZpcF9tb250YW50X2ltcG90IiwiZGdmaXBfcmV2ZW51X2Zpc2NhbF9yZWZlcmVuY2UiLCJkZ2ZpcF9hbm5lZV9pbXBvdCIsImRnZmlwX2FubmVlX3JldmVudXMiLCJkZ2ZpcF9lcnJldXJfY29ycmVjdGlmIiwiZGdmaXBfc2l0dWF0aW9uX3BhcnRpZWxsZSIsIm1lc3JpX2lkZW50aWZpYW50IiwibWVzcmlfaWRlbnRpdGUiLCJtZXNyaV9pbnNjcmlwdGlvbl9ldHVkaWFudCIsIm1lc3JpX2luc2NyaXB0aW9uX2F1dHJlIiwibWVzcmlfYWRtaXNzaW9uIiwibWVzcmlfZXRhYmxpc3NlbWVudHMiLCJwb2xlX2VtcGxvaV9pZGVudGl0ZSIsInBvbGVfZW1wbG9pX2FkcmVzc2UiLCJwb2xlX2VtcGxvaV9jb250YWN0IiwicG9sZV9lbXBsb2lfaW5zY3JpcHRpb24iLCJwb2xlX2VtcGxvaV9wYWllbWVudHMiLCJtZW5fc3RhdHV0X3Njb2xhcml0ZSIsIm1lbl9zdGF0dXRfYm91cnNpZXIiLCJtZW5fZWNoZWxvbl9ib3Vyc2UiXSwic3ViIjoic3RhZ2luZyBkZXZlbG9wbWVudCIsImlhdCI6MTY5MzkwNTAyNCwidmVyc2lvbiI6IjEuMCIsImV4cCI6MjAwOTUyNDIyNH0.uKkMeXNmzwaultKAuS6l1o9StrZky-mY7XLTzygdut4*\n + est nécessaire d'utiliser le jeton de staging indiqué ci-dessous.\n\n---\n\n*eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJqdGkiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY29wZXMiOlsiYXNzb2NpYXRpb25zIiwib3Blbl9kYXRhIiwicHJvYnRwIiwiY290aXNhdGlvbnNfcHJvYnRwIiwiYXR0ZXN0YXRpb25zX2Zpc2NhbGVzIiwiYXR0ZXN0YXRpb25fZmlzY2FsZV9kZ2ZpcCIsImF0dGVzdGF0aW9uc19zb2NpYWxlcyIsImF0dGVzdGF0aW9uX3NvY2lhbGVfdXJzc2FmIiwiYmlsYW5zX2VudHJlcHJpc2VfYmRmIiwiYmlsYW5zX2JkZiIsImZudHBfY2FydGVfcHJvIiwiY2VydGlmaWNhdF9jbmV0cCIsImNlcnRpZmljYXRpb25fY25ldHAiLCJjZXJ0aWZpY2F0X29wcWliaSIsInF1YWxpYmF0IiwiY2VydGlmaWNhdF9yZ2VfYWRlbWUiLCJkb2N1bWVudHNfYXNzb2NpYXRpb24iLCJlbnRyZXByaXNlcyIsInVuaXRlc19sZWdhbGVzX2V0YWJsaXNzZW1lbnRzX2luc2VlIiwiZXRhYmxpc3NlbWVudHMiLCJleGVyY2ljZXMiLCJjaGlmZnJlX2FmZmFpcmVzX2RnZmlwIiwiZXh0cmFpdHNfcmNzIiwibGlhc3NlX2Zpc2NhbGUiLCJsaWFzc2VzX2Zpc2NhbGVzX2RnZmlwIiwiY2VydGlmaWNhdGlvbnNfcXVhbGlvcGlfZnJhbmNlX2NvbXBldGVuY2VzIiwiZW9yaV9kb3VhbmVzIiwiY29udmVudGlvbnNfY29sbGVjdGl2ZXMiLCJtYW5kYXRhaXJlc19zb2NpYXV4X2luZm9ncmVmZmUiLCJhY3Rlc19pbnBpIiwiZXh0cmFpdF9jb3VydF9pbnBpIiwiYXNzb2NpYXRpb25zX2Rvbm5lZXNfcHJvdGVnZWVzIiwiYXNzb2NpYXRpb25zX2RqZXB2YSIsIm1zYV9jb3Rpc2F0aW9ucyIsImNvdGlzYXRpb25zX21zYSIsImNlcnRpZmljYXRpb25fb3BxaWJpIiwiZW50cmVwcmlzZXNfYXJ0aXNhbmFsZXMiLCJlZmZlY3RpZnNfdXJzc2FmIiwiY25hZl9xdW90aWVudF9mYW1pbGlhbCIsImNuYWZfYWxsb2NhdGFpcmVzIiwiY25hZl9lbmZhbnRzIiwiY25hZl9hZHJlc3NlIiwiY29tcGxlbWVudGFpcmVfc2FudGVfc29saWRhaXJlIiwiYWxsb2NhdGlvbl9hZHVsdGVfaGFuZGljYXBlIiwicmV2ZW51X3NvbGlkYXJpdGVfYWN0aXZlIiwicmV2ZW51X3NvbGlkYXJpdGVfYWN0aXZlX21ham9yYXRpb24iLCJhbGxvY2F0aW9uX3NvdXRpZW5fZmFtaWxpYWwiLCJwcmltZV9hY3Rpdml0ZSIsInByaW1lX2FjdGl2aXRlX21ham9yYXRpb24iLCJjbm91c19zdGF0dXRfYm91cnNpZXIiLCJjbm91c19lY2hlbG9uX2JvdXJzZSIsImNub3VzX2VtYWlsIiwiY25vdXNfcGVyaW9kZV92ZXJzZW1lbnQiLCJjbm91c19zdGF0dXRfYm91cnNlIiwiY25vdXNfdmlsbGVfZXR1ZGVzIiwiY25vdXNfaWRlbnRpdGUiLCJtZXNyaV9pZGVudGlmaWFudCIsIm1lc3JpX2lkZW50aXRlIiwibWVzcmlfaW5zY3JpcHRpb25fZXR1ZGlhbnQiLCJtZXNyaV9pbnNjcmlwdGlvbl9hdXRyZSIsIm1lc3JpX2FkbWlzc2lvbiIsIm1lc3JpX2V0YWJsaXNzZW1lbnRzIiwicG9sZV9lbXBsb2lfaWRlbnRpdGUiLCJwb2xlX2VtcGxvaV9hZHJlc3NlIiwicG9sZV9lbXBsb2lfY29udGFjdCIsInBvbGVfZW1wbG9pX2luc2NyaXB0aW9uIiwicG9sZV9lbXBsb2lfcGFpZW1lbnRzIiwibWVuX3N0YXR1dF9zY29sYXJpdGUiLCJtZW5fc3RhdHV0X2JvdXJzaWVyIiwibWVuX2VjaGVsb25fYm91cnNlIl0sInN1YiI6InN0YWdpbmcgZGV2ZWxvcG1lbnQiLCJpYXQiOjE3MTk0ODAzNDIsInZlcnNpb24iOiIxLjAiLCJleHAiOjIwMzUwMTMxNDJ9.3amltSm0dQ_1mvhAvS5E2Qv6Q6HaF_oEHhNck1MLDSk*\n \ " termsOfService: https://entreprise.api.gouv.fr/cgu/ contact: @@ -49,35 +49,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -145,23 +127,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -198,35 +180,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -342,7 +306,7 @@ paths: example: 7889238 description: 'Nombre de secondes avant l''expiration de l''url associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + généralement à 24h.' required: - document_url - expires_in @@ -410,7 +374,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '04999' @@ -533,6 +497,23 @@ paths: description: Entreprise non trouvée content: application/json: + examples: + entite_non_trouvee_04003: + value: + errors: + - code: '04003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: ACOSS + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -607,23 +588,23 @@ paths: tags: - Certifications professionnelles parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -680,8 +661,8 @@ paths: type: number security: - jwt_bearer_token: [] - description: Certifications RGE (Reconnu Garant de l'Environnement), d'un établissement, - délivrée par l'Ademe. + description: Certifications RGE (Reconnu Garant de l'Environnement) d'un établissement, + délivrées par l'Ademe. responses: '401': description: Non autorisé @@ -699,35 +680,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -1059,6 +1022,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_19003: + value: + errors: + - code: '19003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: ADEME + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -1066,7 +1046,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '19999' @@ -1155,23 +1135,23 @@ paths: tags: - Informations financières parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -1218,35 +1198,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -1721,6 +1683,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_17003: + value: + errors: + - code: '17003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Banque de France + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -1728,7 +1707,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '17999' @@ -1851,23 +1830,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -1902,35 +1881,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -2055,13 +2016,9 @@ paths: actif: title: Indique que le NDA est actif description: Ce champ indique le numéro de déclaration - d'activité (NDA) de l'établissement est actif. Pour - conserver un NDA valide, l'établissement doit remplir - chaque année un bilan pédagogique et financier prévu - à l'article L6352-11 du Code du travail. Sans cette - démarche le numéro NDA devient inactif, l'établissement - est retiré de la liste publique des organismes de - formation. + d'activité (NDA) de l'établissement est actif. Cette + valeur est toujours égale à 'true' et est conservée + pour des raisons de retrocompatibilité type: boolean example: true date_derniere_declaration: @@ -2354,6 +2311,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_33003: + value: + errors: + - code: '33003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: CARIF-OREF + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -2361,7 +2335,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '33999' @@ -2444,29 +2418,29 @@ paths: curl -X GET \ -H "Authorization: Bearer $token" \ --url "https://entreprise.api.gouv.fr/v3/carif_oref/etablissements/13002526500013/certifications_qualiopi_france_competences?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/cnetp/unites_legales/{siren}/attestation_cotisations_conges_payes_chomage_intemperies": + "/v3/cibtp/etablissements/{siret}/attestation_cotisations_conges_payes_chomage_intemperies": get: - summary: Attestation de cotisations congés payés & chômage-intempéries + summary: Certificat cotisations CIBTP tags: - Attestations sociales et fiscales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -2480,16 +2454,16 @@ paths: required: true schema: type: string - - name: siren + - name: siret in: path required: true schema: type: string security: - jwt_bearer_token: [] - description: Attestation de cotisations, délivrée par la Caisse nationale des - entrepreneurs de travaux publics (CNETP), attestant le respect des obligations - relatives aux congés payés et au chômage-intempéries. + description: Certificat indiquant qu'une entreprise du bâtiment, affiliée à + la majorité des caisses du réseau CIBTP France, est en règle de ses cotisations + congés payés et chômage-intempéries. responses: '401': description: Non autorisé @@ -2507,35 +2481,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -2591,7 +2547,7 @@ paths: schema: "$ref": "#/components/schemas/Error" '200': - description: Certificat trouvé + description: Entreprise trouvée headers: RateLimit-Limit: schema: @@ -2610,7 +2566,7 @@ paths: type: integer description: La fin de la période courante (en format timestamp) example: 1637223155 - x-operationId: api_entreprise_v3_cnetp_attestation_cotisations_conges_payes_chomage_intemperies + x-operationId: api_entreprise_v3_cibtp_attestation_cotisations_conges_payes_chomage_intemperies content: application/json: schema: @@ -2620,20 +2576,25 @@ paths: type: object properties: document_url: + title: Lien vers le certificat CIBTP type: string - title: Lien vers l'attestation de cotisation retraite ProBTP - description: Ce document est automatiquement supprimé au bout - de 3 mois. - example: https://storage.entreprise.api.gouv.fr/siade/1569139162-b99824d9c764aae19a862a0af-attestation_cotisation_retraite_probtp.pdf + nullable: true + description: Ce lien délivre l'attestation au format PDF. + Ce document est automatiquement supprimé après 10 minutes. + example: https://storage.entreprise.api.gouv.fr/siade/1569139162-b99824d9c764aae19a862a0af-certificat_cibtp.pdf expires_in: + title: Expiration du lien + description: Nombre de secondes avant expiration du document + référencé dans 'document_url'. Il s'agit d'une expiration + technique. Ce champ n'est pas une date de fin de validité + de l'attestation type: integer - example: 7889238 - description: 'Nombre de secondes avant l''expiration de l''url - associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + nullable: true + example: 600 required: - document_url - expires_in + additionalProperties: false links: type: object meta: @@ -2647,17 +2608,17 @@ paths: content: application/json: examples: - unprocessable_entity_error_siren_error: + unprocessable_entity_error_siret_error: value: errors: - - code: '00301' + - code: '00302' title: Entité non traitable - detail: Le numéro de siren n'est pas correctement formatté + detail: Le numéro de siret n'est pas correctement formatté source: - parameter: siren + parameter: siret meta: {} summary: Entité non traitable - description: Le numéro de siren n'est pas correctement formatté + description: Le numéro de siret n'est pas correctement formatté missing_mandatory_params_context_error: value: errors: @@ -2697,82 +2658,58 @@ paths: description: Erreur du fournisseur content: application/json: + schema: + "$ref": "#/components/schemas/Error" examples: - unknown_error: + provider_unknown_error: value: errors: - - code: '08999' + - code: '38999' title: Erreur inconnue du fournisseur de données detail: La réponse retournée par le fournisseur de données est invalide et inconnue de notre service. L'équipe technique a été notifiée de cette erreur pour investigation. source: meta: - provider: CNETP + provider: CIBTP summary: Erreur inconnue du fournisseur de données description: La réponse retournée par le fournisseur de données est invalide et inconnue de notre service. L'équipe technique a été notifiée de cette erreur pour investigation. - fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08051: - value: - errors: - - code: '08051' - title: Fichier renvoyé par le fournisseur de données non valide - detail: 'Erreur lors du décodage : la chaîne de caractères en - base64 est invalide' - source: - meta: {} - summary: Fichier renvoyé par le fournisseur de données non valide - description: 'Erreur lors du décodage : la chaîne de caractères - en base64 est invalide' - fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08052: - value: - errors: - - code: '08052' - title: Fichier renvoyé par le fournisseur de données non valide - detail: Temps d'attente de téléchargement du document écoulé - source: - meta: {} - summary: Fichier renvoyé par le fournisseur de données non valide - description: Temps d'attente de téléchargement du document écoulé - fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08053: - value: - errors: - - code: '08053' - title: Fichier renvoyé par le fournisseur de données non valide - detail: Erreur de connexion sur le server distant - source: - meta: {} - summary: Fichier renvoyé par le fournisseur de données non valide - description: Erreur de connexion sur le server distant - fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08054: + '404': + description: Non trouvée + content: + application/json: + examples: + attestation_non_disponible_38422: value: errors: - - code: '08054' - title: Fichier renvoyé par le fournisseur de données non valide - detail: L'URL vers le document renvoyée par le fournisseur de - données est invalide + - code: '38422' + title: Attestation non disponible + detail: L'attestation ne peut être délivrée car l'entreprise + n'est pas en règle de ses cotisations CIBTP. source: - meta: {} - summary: Fichier renvoyé par le fournisseur de données non valide - description: L'URL vers le document renvoyée par le fournisseur - de données est invalide - fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08055: + meta: + provider: CIBTP + summary: Attestation non disponible + description: L'attestation ne peut être délivrée car l'entreprise + n'est pas en règle de ses cotisations CIBTP. + entite_non_trouvee_38003: value: errors: - - code: '08055' - title: Fichier renvoyé par le fournisseur de données non valide - detail: Le fichier n'est pas au format attendu + - code: '38003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. source: - meta: {} - summary: Fichier renvoyé par le fournisseur de données non valide - description: Le fichier n'est pas au format attendu - schema: - "$ref": "#/components/schemas/Error" - '404': - description: Non trouvé - content: - application/json: + meta: + provider: CIBTP + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -2783,26 +2720,26 @@ paths: timeout_error: value: errors: - - code: '08002' + - code: '38002' title: Intermédiaire hors-délai detail: Temps d’attente d’une réponse du fournisseur de données écoulé. source: meta: - provider: CNETP + provider: CIBTP summary: Intermédiaire hors-délai description: Temps d’attente d’une réponse du fournisseur de données écoulé. provider_unavailable_error: value: errors: - - code: '08001' + - code: '38001' title: Service non disponible detail: Service du fournisseur de données temporairement indisponible ou en maintenance. source: meta: - provider: CNETP + provider: CIBTP summary: Service non disponible description: Service du fournisseur de données temporairement indisponible ou en maintenance. @@ -2824,48 +2761,39 @@ paths: dns_resolution_error: value: errors: - - code: '08004' + - code: '38004' title: Erreur de résolution DNS detail: Problème de résolution DNS de l'adresse du serveur source: meta: - provider: CNETP + provider: CIBTP summary: Erreur de résolution DNS description: Problème de résolution DNS de l'adresse du serveur schema: "$ref": "#/components/schemas/Error" - x-maintenances: - from_hour: '06:00' - to_hour: '06:30' x-codeSamples: - lang: cURL label: Ligne de commande source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/cnetp/unites_legales/130025265/attestation_cotisations_conges_payes_chomage_intemperies?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/douanes/etablissements/{siret_or_eori}/immatriculations_eori": + --url "https://entreprise.api.gouv.fr/v3/cibtp/etablissements/13002526500013/attestation_cotisations_conges_payes_chomage_intemperies?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/cnetp/unites_legales/{siren}/attestation_cotisations_conges_payes_chomage_intemperies": get: - summary: Immatriculation EORI + summary: Certificat cotisations CNETP tags: - - Informations générales + - Attestations sociales et fiscales parameters: - - name: siret_or_eori - in: path - description: Siret ou numéro EORI de l'entreprise - examples: - french_siret: - value: '16002307300010' - summary: Siret français - french_eori: - value: FR16002307300010 - summary: Numéro EORI français - spanish_eori: - value: ESA08536583 - summary: Numéro EORI espagnol - required: true - schema: - type: string + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string - name: context in: query description: |- @@ -2876,6 +2804,400 @@ paths: required: true schema: type: string + - name: object + in: query + description: |- + "**La raison de l’appel ou l’identifiant de la procédure.** + + L’identifiant peut être interne à votre organisation ou bien un numéro de marché publique, un nom de procédure ; l’essentiel est que celui-ci vous permette de tracer et de retrouver les informations relatives à l’appel. En effet, vous devez pouvoir justifier de la raison d’un appel auprès du fournisseur de données. Description courte ( < 50 caractères )." + example: marché numéro 127 + required: true + schema: + type: string + - name: siren + in: path + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: Certificat indiquant qu'une entreprise de travaux publics affiliée + à la caisse CNETP est en règle de ses cotisations congés payés et chômage-intempéries. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /v2/privileges + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /v2/privileges + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Certificat trouvé + headers: + RateLimit-Limit: + schema: + type: integer + description: La limite concernant l’endpoint appelé, soit le nombre + de requête/minute. + example: 50 + RateLimit-Remaining: + schema: + type: integer + description: Le nombre d’appels restants durant la période courante + d’une minute. + example: 47 + RateLimit-Reset: + schema: + type: integer + description: La fin de la période courante (en format timestamp) + example: 1637223155 + x-operationId: api_entreprise_v3_cnetp_attestation_cotisations_conges_payes_chomage_intemperies + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + document_url: + type: string + title: Lien vers le certificat CNETP + description: Ce lien délivre l'attestation au format PDF. + Ce document est automatiquement supprimé après 24h. + example: https://storage.entreprise.api.gouv.fr/siade/1569139162-b99824d9c764aae19a862a0af-certificat_cnetp.pdf + expires_in: + type: integer + example: 7889238 + description: 'Nombre de secondes avant l''expiration de l''url + associée à l''attribut document_url : cette durée correspond + généralement à 24h.' + required: + - document_url + - expires_in + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '422': + description: Paramètre(s) invalide(s) + content: + application/json: + examples: + unprocessable_entity_error_siren_error: + value: + errors: + - code: '00301' + title: Entité non traitable + detail: Le numéro de siren n'est pas correctement formatté + source: + parameter: siren + meta: {} + summary: Entité non traitable + description: Le numéro de siren n'est pas correctement formatté + missing_mandatory_params_context_error: + value: + errors: + - code: '00201' + title: Entité non traitable + detail: Le paramètre context est obligatoire + source: + parameter: context + meta: {} + summary: Entité non traitable + description: Le paramètre context est obligatoire + missing_mandatory_params_object_error: + value: + errors: + - code: '00202' + title: Entité non traitable + detail: Le paramètre object est obligatoire + source: + parameter: object + meta: {} + summary: Entité non traitable + description: Le paramètre object est obligatoire + missing_mandatory_params_recipient_error: + value: + errors: + - code: '00203' + title: Entité non traitable + detail: Le paramètre recipient est obligatoire + source: + parameter: recipient + meta: {} + summary: Entité non traitable + description: Le paramètre recipient est obligatoire + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '08999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNETP + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08051: + value: + errors: + - code: '08051' + title: Fichier renvoyé par le fournisseur de données non valide + detail: 'Erreur lors du décodage : la chaîne de caractères en + base64 est invalide' + source: + meta: {} + summary: Fichier renvoyé par le fournisseur de données non valide + description: 'Erreur lors du décodage : la chaîne de caractères + en base64 est invalide' + fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08052: + value: + errors: + - code: '08052' + title: Fichier renvoyé par le fournisseur de données non valide + detail: Temps d'attente de téléchargement du document écoulé + source: + meta: {} + summary: Fichier renvoyé par le fournisseur de données non valide + description: Temps d'attente de téléchargement du document écoulé + fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08053: + value: + errors: + - code: '08053' + title: Fichier renvoyé par le fournisseur de données non valide + detail: Erreur de connexion sur le server distant + source: + meta: {} + summary: Fichier renvoyé par le fournisseur de données non valide + description: Erreur de connexion sur le server distant + fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08054: + value: + errors: + - code: '08054' + title: Fichier renvoyé par le fournisseur de données non valide + detail: L'URL vers le document renvoyée par le fournisseur de + données est invalide + source: + meta: {} + summary: Fichier renvoyé par le fournisseur de données non valide + description: L'URL vers le document renvoyée par le fournisseur + de données est invalide + fichier_renvoye_par_le_fournisseur_de_donnees_non_valide_08055: + value: + errors: + - code: '08055' + title: Fichier renvoyé par le fournisseur de données non valide + detail: Le fichier n'est pas au format attendu + source: + meta: {} + summary: Fichier renvoyé par le fournisseur de données non valide + description: Le fichier n'est pas au format attendu + schema: + "$ref": "#/components/schemas/Error" + '404': + description: Non trouvé + content: + application/json: + examples: + entite_non_trouvee_08003: + value: + errors: + - code: '08003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: CNETP + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '08002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNETP + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '08001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNETP + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '08004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNETP + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + x-maintenances: + from_hour: '06:00' + to_hour: '06:30' + x-codeSamples: + - lang: cURL + label: Ligne de commande + source: |- + curl -X GET \ + -H "Authorization: Bearer $token" \ + --url "https://entreprise.api.gouv.fr/v3/cnetp/unites_legales/130025265/attestation_cotisations_conges_payes_chomage_intemperies?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/douanes/etablissements/{siret_or_eori}/immatriculations_eori": + get: + summary: Immatriculation EORI + tags: + - Informations générales + parameters: + - name: siret_or_eori + in: path + description: Siret ou numéro EORI de l'entreprise + examples: + french_siret: + value: '16002307300010' + summary: Siret français + french_eori: + value: FR16002307300010 + summary: Numéro EORI français + spanish_eori: + value: ESA08536583 + summary: Numéro EORI espagnol + required: true + schema: + type: string - name: recipient in: query description: |- @@ -2886,6 +3208,16 @@ paths: required: true schema: type: string + - name: context + in: query + description: |- + "**Cadre de la requête** + + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test + required: true + schema: + type: string - name: object in: query description: |- @@ -2920,35 +3252,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -3137,6 +3451,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_16003: + value: + errors: + - code: '16003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DGDDI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -3144,7 +3475,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '16999' @@ -3273,23 +3604,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -3325,35 +3656,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -3465,7 +3778,7 @@ paths: example: 7889238 description: 'Nombre de secondes avant l''expiration de l''url associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + généralement à 24h.' required: - document_url - expires_in @@ -3481,6 +3794,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_03003: + value: + errors: + - code: '03003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DGFIP - Adélie + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -3539,7 +3869,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '03999' @@ -3724,23 +4054,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -3776,35 +4106,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -3950,6 +4262,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_03003: + value: + errors: + - code: '03003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DGFIP - Adélie + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -4008,7 +4337,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '03999' @@ -4154,14 +4483,11 @@ paths: tags: - Informations financières parameters: - - name: context - in: query - description: |- - "**Cadre de la requête** - - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test - required: true + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. schema: type: string - name: recipient @@ -4174,6 +4500,16 @@ paths: required: true schema: type: string + - name: context + in: query + description: |- + "**Cadre de la requête** + + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test + required: true + schema: + type: string - name: object in: query description: |- @@ -4239,35 +4575,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -4325,6 +4643,22 @@ paths: '200': description: Exercices trouvés headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. RateLimit-Limit: schema: type: integer @@ -4381,6 +4715,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_03003: + value: + errors: + - code: '03003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DGFIP - Adélie + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -4439,7 +4790,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '03999' @@ -4531,14 +4882,11 @@ paths: tags: - Informations financières parameters: - - name: context - in: query - description: |- - "**Cadre de la requête** - - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test - required: true + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. schema: type: string - name: recipient @@ -4551,6 +4899,16 @@ paths: required: true schema: type: string + - name: context + in: query + description: |- + "**Cadre de la requête** + + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test + required: true + schema: + type: string - name: object in: query description: |- @@ -4593,35 +4951,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -4679,6 +5019,22 @@ paths: '200': description: Entreprise trouvée headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. RateLimit-Limit: schema: type: integer @@ -4959,6 +5315,23 @@ paths: description: Pas de liasses fiscales pour cette unité légale content: application/json: + examples: + entite_non_trouvee_03003: + value: + errors: + - code: '03003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DGFIP - Adélie + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -5017,7 +5390,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '03999' @@ -5146,23 +5519,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -5198,35 +5571,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -6676,6 +7031,8 @@ paths: - LAS - RCC - RIN + - NJO + - CJO libelle: type: string title: Libellé du sous-type @@ -6838,6 +7195,23 @@ paths: description: Association non trouvée content: application/json: + examples: + entite_non_trouvee_29003: + value: + errors: + - code: '29003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DJEPVA + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -6904,7 +7278,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '29999' @@ -6947,23 +7321,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -6999,35 +7373,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -8250,6 +8606,23 @@ paths: description: Association non trouvée content: application/json: + examples: + entite_non_trouvee_29003: + value: + errors: + - code: '29003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: DJEPVA + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -8316,7 +8689,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '29999' @@ -8346,23 +8719,23 @@ paths: tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -8402,35 +8775,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -8517,6 +8872,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_28003: + value: + errors: + - code: '28003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Commission Européenne + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -8575,7 +8947,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '28999' @@ -8661,26 +9033,27 @@ paths: "/v3/fabrique_numerique_ministeres_sociaux/etablissements/{siret}/conventions_collectives": get: summary: Conventions collectives + deprecated: true tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -8749,35 +9122,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -9001,6 +9356,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_14003: + value: + errors: + - code: '14003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Fabrique numérique des Ministères Sociaux + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -9008,7 +9380,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '14999' @@ -9097,23 +9469,23 @@ paths: tags: - Attestations sociales et fiscales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -9154,35 +9526,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -9277,7 +9631,7 @@ paths: example: 7889238 description: 'Nombre de secondes avant l''expiration de l''url associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + généralement à 24h.' required: - document_url - expires_in @@ -9345,7 +9699,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '12999' @@ -9420,6 +9774,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_12003: + value: + errors: + - code: '12003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: FNTP + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -9494,23 +9865,23 @@ paths: tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -9582,35 +9953,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -9806,6 +10159,23 @@ paths: description: Effectifs non trouvés content: application/json: + examples: + entite_non_trouvee_31003: + value: + errors: + - code: '31003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: GIP-MDS + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -9813,7 +10183,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '31999' @@ -9902,23 +10272,23 @@ paths: tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -10007,35 +10377,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -10253,6 +10605,23 @@ paths: description: Effectifs non trouvés content: application/json: + examples: + entite_non_trouvee_31003: + value: + errors: + - code: '31003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: GIP-MDS + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -10260,7 +10629,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '31999' @@ -10349,23 +10718,23 @@ paths: tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -10433,35 +10802,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -10707,7 +11058,11 @@ paths: se voir affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." example: 6420Z required: - activite @@ -11057,6 +11412,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_02003: + value: + errors: + - code: '02003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Infogreffe + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -11064,7 +11436,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '02999' @@ -11185,23 +11557,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -11236,35 +11608,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -11589,6 +11943,23 @@ paths: description: Entreprise non trouvée content: application/json: + examples: + entite_non_trouvee_02003: + value: + errors: + - code: '02003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Infogreffe + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -11596,7 +11967,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '02999' @@ -11679,29 +12050,29 @@ paths: curl -X GET \ -H "Authorization: Bearer $token" \ --url "https://entreprise.api.gouv.fr/v3/infogreffe/rcs/unites_legales/130025265/mandataires_sociaux?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/inpi/unites_legales/{siren}/actes": + "/v3/inpi/unites_legales/{siren}/brevets": get: - summary: Actes + summary: Brevets déposés tags: - - Informations générales + - Propriété intellectuelle parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -11720,10 +12091,17 @@ paths: required: true schema: type: string + - name: limit + in: query + description: Limite le nombre de résultats retournés. Valeur entre 1 et 20 + (Défaut 5) + example: 10 + schema: + type: number security: - jwt_bearer_token: [] - description: 'Actes issus des greffes et archivés à l’Institut national de propriété - industrielle (Inpi). + description: 'Nombre de brevets déposés par l''entreprise (lorsque le SIREN + a été spécifié) et informations sur les brevets les plus récents. ' responses: @@ -11743,35 +12121,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -11827,7 +12187,7 @@ paths: schema: "$ref": "#/components/schemas/Error" '200': - description: Actes trouvés + description: Brevets trouvés headers: RateLimit-Limit: schema: @@ -11846,7 +12206,7 @@ paths: type: integer description: La fin de la période courante (en format timestamp) example: 1637223155 - x-operationId: api_entreprise_v3_inpi_actes + x-operationId: api_entreprise_v3_inpi_latest_brevets content: application/json: schema: @@ -11860,44 +12220,163 @@ paths: data: type: object properties: + numero_publication: + title: Numéro de publication + description: Numéro de publication du brevet, constitué + du code zone + numéro du brevet + catégorie de publication + type: string + example: FR3110115A1 type: title: Type de la ressource type: string - example: acte + example: brevet enum: - - acte - siren: - title: Numéro Siren - description: Numéro SIREN de l'entreprise concernée - par l'acte + - brevet + titre: + title: Titre + description: Titre du brevet type: string - example: '788242667' - code_greffe: - title: Code greffe - description: Code identifiant du greffe ayant traité - l'acte - type: number - example: 5752 + example: DETERMINATION DE PARAMETRES D'UN MODELE + DYNAMIQUE POUR UNE CELLULE ELECTROCHIMIQUE DE BATTERIE + date_publication: + title: Date de publication + description: Date de publication du brevet + type: string + format: date + example: '2017-06-16' date_depot: - title: Date dépot - description: Date à laquelle a été déposé l'acte + title: Date de dépot + description: Date de dépot du brevet + type: string + format: date + example: '2015-12-14' + code_zone: + description: | + Code de deux lettres représentant la zone géographique où le brevet a été déposé, en fonction + de l'organisation qui a enregistré le brevet. + type: string + example: FR + enum: + - AL + - AP + - AR + - AT + - AU + - BA + - BE + - BG + - BR + - CA + - CH + - CL + - CN + - CO + - CR + - CS + - CU + - CY + - CZ + - DD + - DE + - DK + - DZ + - EA + - EC + - EE + - EG + - EP + - ES + - FI + - FR + - GB + - GC + - GE + - GR + - GT + - HK + - HR + - HU + - ID + - IE + - IL + - IN + - IS + - IT + - JP + - KE + - KR + - LI + - LT + - LU + - LV + - MA + - MC + - MD + - ME + - MK + - MN + - MT + - MW + - MX + - MY + - NC + - NI + - NL + - false + - NZ + - OA + - PA + - PE + - PH + - PL + - PT + - RO + - RS + - RU + - SE + - SG + - SI + - SK + - SM + - SU + - SV + - TJ + - TR + - TT + - TW + - UA + - US + - UY + - VN + - WO + - YU + - ZA + - ZM + - ZW + - + numero_brevet: + title: Numéro du brevet + description: 'Numéro du brevet dans l''organisation + ou il a été déposé (déterminée par le code de zone) + + ' type: string - example: '2017-06-16' - nature_archive: - title: Nature de l'archive de l'acte - description: 'Chaîne de caractères contenant une ou - plusieurs lettres séparées par un tiret, explicitant - de quelle(s) catégories d''archives l''acte provient: - A (actes de sociétés) R (ordonnances) et P (actes - de personnes physiques)' + example: '3110115' + categorie_publication: + title: Catégorie + description: 'Code représentant la catégorie du brevet + (ex: A1 pour une demande de brevet,' type: string - example: A-R + example: A1 required: + - numero_publication - type - - siren - - code_greffe + - titre + - date_publication - date_depot - - nature_archive + - code_zone + - numero_brevet + - categorie_publication links: type: object meta: @@ -11960,9 +12439,26 @@ paths: schema: "$ref": "#/components/schemas/Error" '404': - description: Actes non trouvés + description: Brevets non trouvés content: application/json: + examples: + entite_non_trouvee_05003: + value: + errors: + - code: '05003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INPI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -11970,7 +12466,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '05999' @@ -12052,30 +12548,30 @@ paths: source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/actes?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/inpi/unites_legales/{siren}/brevets": + --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/brevets?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/inpi/unites_legales/{siren}/marques": get: - summary: Brevets déposés + summary: Marques déposées tags: - Propriété intellectuelle parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -12103,8 +12599,8 @@ paths: type: number security: - jwt_bearer_token: [] - description: 'Nombre de brevets déposés par l''entreprise (lorsque le SIREN - a été spécifié) et informations sur les brevets les plus récents. + description: 'Nombre de marques déposées par l''entreprise (lorsque le SIREN + a été spécifié) et informations sur les marques les plus récentes. ' responses: @@ -12124,35 +12620,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -12208,7 +12686,7 @@ paths: schema: "$ref": "#/components/schemas/Error" '200': - description: Brevets trouvés + description: Marques trouvées headers: RateLimit-Limit: schema: @@ -12227,179 +12705,79 @@ paths: type: integer description: La fin de la période courante (en format timestamp) example: 1637223155 - x-operationId: api_entreprise_v3_inpi_latest_brevets + x-operationId: api_entreprise_v3_inpi_latest_marques content: application/json: - schema: - type: object - properties: - data: - type: array - items: - type: object - properties: - data: - type: object - properties: - numero_publication: - title: Numéro de publication - description: Numéro de publication du brevet, constitué - du code zone + numéro du brevet + catégorie de publication - type: string - example: FR3110115A1 - type: - title: Type de la ressource - type: string - example: brevet - enum: - - brevet - titre: - title: Titre - description: Titre du brevet - type: string - example: DETERMINATION DE PARAMETRES D'UN MODELE - DYNAMIQUE POUR UNE CELLULE ELECTROCHIMIQUE DE BATTERIE - date_publication: - title: Date de publication - description: Date de publication du brevet - type: string - format: date - example: '2017-06-16' - date_depot: - title: Date de dépot - description: Date de dépot du brevet - type: string - format: date - example: '2015-12-14' - code_zone: - description: | - Code de deux lettres représentant la zone géographique où le brevet a été déposé, en fonction - de l'organisation qui a enregistré le brevet. - type: string - example: FR - enum: - - AL - - AP - - AR - - AT - - AU - - BA - - BE - - BG - - BR - - CA - - CH - - CL - - CN - - CO - - CR - - CS - - CU - - CY - - CZ - - DD - - DE - - DK - - DZ - - EA - - EC - - EE - - EG - - EP - - ES - - FI - - FR - - GB - - GC - - GE - - GR - - GT - - HK - - HR - - HU - - ID - - IE - - IL - - IN - - IS - - IT - - JP - - KE - - KR - - LI - - LT - - LU - - LV - - MA - - MC - - MD - - ME - - MK - - MN - - MT - - MW - - MX - - MY - - NC - - NI - - NL - - false - - NZ - - OA - - PA - - PE - - PH - - PL - - PT - - RO - - RS - - RU - - SE - - SG - - SI - - SK - - SM - - SU - - SV - - TJ - - TR - - TT - - TW - - UA - - US - - UY - - VN - - WO - - YU - - ZA - - ZM - - ZW - - - numero_brevet: - title: Numéro du brevet - description: 'Numéro du brevet dans l''organisation - ou il a été déposé (déterminée par le code de zone) - - ' + schema: + type: object + properties: + data: + type: array + items: + type: object + properties: + data: + type: object + properties: + numero_application: + title: Numéro d'identification type: string - example: '3110115' - categorie_publication: - title: Catégorie - description: 'Code représentant la catégorie du brevet - (ex: A1 pour une demande de brevet,' + example: '4313464' + type: + title: Type de la ressource type: string - example: A1 + example: marque + enum: + - marque + nom: + title: Nom + type: string + example: DISTRIGO PARTS DISTRIBUTION + nullable: true + status: + title: Statut + type: string + example: Marque enregistrée + enum: + - Demande déposée + - Demande publiée + - Demande non publiée + - Demande irrecevable après publication + - Marque enregistrée + - Renouvellement demandé + - Marque renouvelée + - Demande totalement rejetée + - Marque ayant fait l'objet d'une renonciation totale + - Marque ayant fait l'objet d'un retrait total + - Marque annulée + - Marque expirée + depositaire: + title: Dépositaire + description: Nom de déposant ou titulaire + type: string + example: PEUGEOT CITROËN AUTOMOBILES SA, Société anonyme + clef: + title: Clef + type: string + example: FMARK|4313464 required: - - numero_publication + - numero_application - type - - titre - - date_publication - - date_depot - - code_zone - - numero_brevet - - categorie_publication + - nom + - status + - depositaire + - clef links: type: object + properties: + notice: + type: string + example: https://opendata-pi.inpi.fr/inpi/marques/notice/FR4313464 + description: Lien vers la notice concernant ce dépôt + de marque, au format XML. + required: + - notice + additionalProperties: false meta: type: object meta: @@ -12460,9 +12838,26 @@ paths: schema: "$ref": "#/components/schemas/Error" '404': - description: Brevets non trouvés + description: Marques non trouvées content: application/json: + examples: + entite_non_trouvee_05003: + value: + errors: + - code: '05003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INPI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -12470,7 +12865,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '05999' @@ -12552,30 +12947,30 @@ paths: source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/brevets?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/inpi/unites_legales/{siren}/marques": + --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/marques?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/inpi/unites_legales/{siren}/modeles": get: - summary: Marques déposées + summary: Modèles déposés tags: - Propriété intellectuelle parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -12603,8 +12998,8 @@ paths: type: number security: - jwt_bearer_token: [] - description: 'Nombre de marques déposées par l''entreprise (lorsque le SIREN - a été spécifié) et informations sur les marques les plus récentes. + description: 'Nombre de modèles déposés par l''entreprise (lorsque le SIREN + a été spécifié) et informations sur les modèles les plus récents. ' responses: @@ -12624,35 +13019,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -12708,7 +13085,7 @@ paths: schema: "$ref": "#/components/schemas/Error" '200': - description: Marques trouvées + description: Modèles trouvés headers: RateLimit-Limit: schema: @@ -12727,7 +13104,7 @@ paths: type: integer description: La fin de la période courante (en format timestamp) example: 1637223155 - x-operationId: api_entreprise_v3_inpi_latest_marques + x-operationId: api_entreprise_v3_inpi_latest_modeles content: application/json: schema: @@ -12741,62 +13118,84 @@ paths: data: type: object properties: - numero_application: - title: Numéro d'identification + document_id: + title: Identifiant + description: 'Identifiant du modèle dans la base de + l''INPI, constitué du code de l''office de dépôt (ex: + FR), du numéro national de dépôt (ex: 20203928) et + du numéro de référence (ex: 001) ' type: string - example: '4313464' + example: FR20203928-001 type: title: Type de la ressource type: string - example: marque + example: modele enum: - - marque - nom: - title: Nom + - modele + numero_depot: + title: Numéro national de dépôt + description: Numéro national sous lequel le modèle est + enregistré. type: string - example: DISTRIGO PARTS DISTRIBUTION - nullable: true - status: - title: Statut + example: '20203928' + titre: + title: Titre + description: Titre du modèle. type: string - example: Marque enregistrée - enum: - - Demande déposée - - Demande publiée - - Demande non publiée - - Demande irrecevable après publication - - Marque enregistrée - - Renouvellement demandé - - Marque renouvelée - - Demande totalement rejetée - - Marque ayant fait l'objet d'une renonciation totale - - Marque ayant fait l'objet d'un retrait total - - Marque annulée - - Marque expirée - depositaire: - title: Dépositaire - description: Nom de déposant ou titulaire + example: Véhicule automobile, vues de détails + total_representations: + title: Représentations totales + description: Nombre de représentations (vues) du modèle + type: number + example: 7 + deposant: + title: Déposant + description: Nom de l'entité ayant déposé le modèle. type: string - example: PEUGEOT CITROËN AUTOMOBILES SA, Société anonyme - clef: - title: Clef + example: PSA AUTOMOBILES, SA + date_depot: + title: Date de dépôt + description: Date à laquelle le modèle a été déposé + pour publication type: string - example: FMARK|4313464 + example: '2015-12-14' + date_publication: + title: Date de publication + description: Date de publication du modèle + type: string + example: '2015-12-14' + classe: + title: Code de classification + description: Code de classification du modèle, sur 4 + chiffres + type: string + example: '2606' + reference: + title: Numéro de réference + description: Numéro de référence du modèle par entité, + sur trois chiffres. Le premier modèle d'une entité + est numéroté 001, le second 002, etc. + type: string + example: '001' required: - - numero_application + - document_id - type - - nom - - status - - depositaire - - clef + - numero_depot + - titre + - total_representations + - deposant + - date_depot + - date_publication + - classe + - reference links: type: object properties: notice: type: string - example: https://opendata-pi.inpi.fr/inpi/marques/notice/FR4313464 + example: https://opendata-pi.inpi.fr/inpi/modeles/notice/FR20203928?ref=006 description: Lien vers la notice concernant ce dépôt - de marque, au format XML. + de modèle, au format XML required: - notice additionalProperties: false @@ -12860,9 +13259,26 @@ paths: schema: "$ref": "#/components/schemas/Error" '404': - description: Marques non trouvées + description: Modèles non trouvés content: application/json: + examples: + entite_non_trouvee_05003: + value: + errors: + - code: '05003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INPI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -12870,7 +13286,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '05999' @@ -12952,30 +13368,30 @@ paths: source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/marques?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/inpi/unites_legales/{siren}/modeles": + --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/modeles?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/inpi/rne/unites_legales/open_data/{siren}/actes_bilans": get: - summary: Modèles déposés + summary: Actes et bilans tags: - - Propriété intellectuelle + - Prochainement parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -12994,19 +13410,11 @@ paths: required: true schema: type: string - - name: limit - in: query - description: Limite le nombre de résultats retournés. Valeur entre 1 et 20 - (Défaut 5) - example: 10 - schema: - type: number security: - jwt_bearer_token: [] - description: 'Nombre de modèles déposés par l''entreprise (lorsque le SIREN - a été spécifié) et informations sur les modèles les plus récents. - - ' + description: | + Liste des actes et bilans d'une unité légale inscrite au répertoire national des entreprises (RNE). + Seuls les actes et bilans publiques sont distribués. L'INPI peut potentiellement posséder des actes et bilans "partiellement confidentiels". responses: '401': description: Non autorisé @@ -13024,35 +13432,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -13108,7 +13498,7 @@ paths: schema: "$ref": "#/components/schemas/Error" '200': - description: Modèles trouvés + description: Entreprise trouvée headers: RateLimit-Limit: schema: @@ -13127,109 +13517,144 @@ paths: type: integer description: La fin de la période courante (en format timestamp) example: 1637223155 - x-operationId: api_entreprise_v3_inpi_latest_modeles + x-operationId: api_entreprise_v3_inpi_rne_actes_bilans content: application/json: schema: type: object properties: data: - type: array - items: - type: object - properties: - data: + type: object + properties: + actes: + title: Liste des documents contenant les actes de l'unité + légale + description: | + Ce tableau liste les documents, classés par + date de mise à jour, et à défaut date de dépôt du document. Un document + peut contenir un ou plusieurs actes dont le type est décrit + dans la métadonnée. + type: array + items: type: object properties: - document_id: - title: Identifiant - description: 'Identifiant du modèle dans la base de - l''INPI, constitué du code de l''office de dépôt (ex: - FR), du numéro national de dépôt (ex: 20203928) et - du numéro de référence (ex: 001) ' + id: + title: Identifiant de l'acte type: string - example: FR20203928-001 - type: - title: Type de la ressource + example: 65419234a1f7d1f2ba09bd8c + nom_document: + title: Nom du document à l'Inpi + description: Nom du document déposé. type: string - example: modele - enum: - - modele - numero_depot: - title: Numéro national de dépôt - description: Numéro national sous lequel le modèle est - enregistré. + example: X9wvz5eKvKQv_C0022A1001L257081D20230902H180411TPIJTES003PDBOR + date_depot: + title: Date de dépôt du document type: string - example: '20203928' - titre: - title: Titre - description: Titre du modèle. + format: date + example: '2023-08-08' + date_mise_a_jour: + title: Date de mise à jour du document type: string - example: Véhicule automobile, vues de détails - total_representations: - title: Représentations totales - description: Nombre de représentations (vues) du modèle - type: number - example: 7 - deposant: - title: Déposant - description: Nom de l'entité ayant déposé le modèle. + format: date + example: '2023-11-01' + types_actes: + title: Types d'actes contenus dans le document + type: array + description: | + Liste les types d'actes inclus dans le document retourné. + Pour les documents qui ont été établis avant la création du répertoire des entreprises (RNE) + et qui étaient autrefois transmis par les greffes au registre national du commerce et des sociétés (RNCS), + le document est souvent constitué de plusieurs actes distincts (exemple: le même document peut contenir + une modification de l'adresse du siège social + et une modification du capital social). Les actes qui sont maintenant déposés au guichet unique ne sont + jamais regroupés dans un même document. + nullable: true + items: + type: object + properties: + type_acte: + title: Type d'acte + description: | + Intitulé décrivant le type de l'acte. + Les intitulés les plus fréquents sont : Acte, Certificat, Procès-verbal, + Statuts mis à jour, Extrait de procès-verbal, etc. + type: string + example: Procès-verbal + type_decision: + title: Type de décision + description: | + Intitulé décrivant le type de décision prise par l'acte. + Les intitulés sont par exemple : Décision d'augmentation, Modification(s) statutaire(s), + Augmentation du capital social, Fin de mission de commissaire aux comptes titulaire, + Nomination(s) d'administrateur(s), etc. + type: string + example: Augmentation du capital social + nullable: true + url: + title: URL du document type: string - example: PSA AUTOMOBILES, SA + example: https://entreprise.api.gouv.fr/proxy/inpi/download/%2FV+svyVVJGVCJroamyqjOrECaXHorkxJ39vZH1IMHz4N+6gvit9zgoQ=--rJ1ss+Brc7oVhloH--huyvWA83YgMFqOnjyKDmXQ== + bilans: + title: Liste des bilans de l'unité légale + type: array + items: + type: object + properties: + id: + title: Identifiant du bilan + type: string + example: 65419234a1f7d1f2ba09bd8c + nom_document: + title: Nom du bilan + description: Nom du bilan à l'Inpi. + type: string + example: X9wvz5eKvKQv_C0022A1001L257081D20230902H180411TPIJTES003PDBOR date_depot: - title: Date de dépôt - description: Date à laquelle le modèle a été déposé - pour publication + title: Date de dépôt du bilan type: string - example: '2015-12-14' - date_publication: - title: Date de publication - description: Date de publication du modèle + format: date + example: '2023-08-08' + date_cloture: + title: Date de clôture du bilan type: string - example: '2015-12-14' - classe: - title: Code de classification - description: Code de classification du modèle, sur 4 - chiffres + format: date + example: '2023-08-08' + date_mise_a_jour: + title: Date de mise à jour du bilan type: string - example: '2606' - reference: - title: Numéro de réference - description: Numéro de référence du modèle par entité, - sur trois chiffres. Le premier modèle d'une entité - est numéroté 001, le second 002, etc. + format: date + example: '2023-11-01' + type: + title: Type de bilan + description: 'Type du bilan déposé. + + ' type: string - example: '001' - required: - - document_id - - type - - numero_depot - - titre - - total_representations - - deposant - - date_depot - - date_publication - - classe - - reference - links: - type: object - properties: - notice: + example: bilan complet + enum: + - bilan complet + - bilan simplifié + - bilan consolidé + - bilan de type banque + - bilan de type assurance + - bilan de type agricole simplifié + url: + title: URL du bilan + description: URL pour télécharger le document bilan type: string - example: https://opendata-pi.inpi.fr/inpi/modeles/notice/FR20203928?ref=006 - description: Lien vers la notice concernant ce dépôt - de modèle, au format XML - required: - - notice - additionalProperties: false - meta: - type: object - meta: - type: object + example: https://entreprise.api.gouv.fr/proxy/inpi/download/%2FV+svyVVJGVCJroamyqjOrECaXHorkxJ39vZH1IMHz4N+6gvit9zgoQ=--rJ1ss+Brc7oVhloH--huyvWA83YgMFqOnjyKDmXQ== + required: + - actes + - bilans + additionalProperties: false links: type: object + meta: + type: object required: - data + - links + - meta '422': description: Paramètre(s) invalide(s) content: @@ -13282,9 +13707,26 @@ paths: schema: "$ref": "#/components/schemas/Error" '404': - description: Modèles non trouvés + description: Non trouvée content: application/json: + examples: + entite_non_trouvee_34003: + value: + errors: + - code: '34003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INPI - RNE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -13292,17 +13734,17 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - - code: '05999' + - code: '34999' title: Erreur inconnue du fournisseur de données detail: La réponse retournée par le fournisseur de données est invalide et inconnue de notre service. L'équipe technique a été notifiée de cette erreur pour investigation. source: meta: - provider: INPI + provider: INPI - RNE summary: Erreur inconnue du fournisseur de données description: La réponse retournée par le fournisseur de données est invalide et inconnue de notre service. L'équipe technique @@ -13317,26 +13759,26 @@ paths: timeout_error: value: errors: - - code: '05002' + - code: '34002' title: Intermédiaire hors-délai detail: Temps d’attente d’une réponse du fournisseur de données écoulé. source: meta: - provider: INPI + provider: INPI - RNE summary: Intermédiaire hors-délai description: Temps d’attente d’une réponse du fournisseur de données écoulé. provider_unavailable_error: value: errors: - - code: '05001' + - code: '34001' title: Service non disponible detail: Service du fournisseur de données temporairement indisponible ou en maintenance. source: meta: - provider: INPI + provider: INPI - RNE summary: Service non disponible description: Service du fournisseur de données temporairement indisponible ou en maintenance. @@ -13358,12 +13800,12 @@ paths: dns_resolution_error: value: errors: - - code: '05004' + - code: '34004' title: Erreur de résolution DNS detail: Problème de résolution DNS de l'adresse du serveur source: meta: - provider: INPI + provider: INPI - RNE summary: Erreur de résolution DNS description: Problème de résolution DNS de l'adresse du serveur schema: @@ -13374,30 +13816,30 @@ paths: source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/inpi/unites_legales/130025265/modeles?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" - "/v3/inpi/rne/unites_legales/open_data/{siren}/beneficiaires_effectifs": + --url "https://entreprise.api.gouv.fr/v3/inpi/rne/unites_legales/open_data/130025265/actes_bilans?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + "/v3/inpi/rne/unites_legales/{siren}/beneficiaires_effectifs": get: summary: Bénéficiaires effectifs tags: - Informations générales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -13471,35 +13913,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -13605,6 +14029,10 @@ paths: data: type: object properties: + beneficiaire_uuid: + title: UUID du bénéficiaire effectif + type: string + example: 21120ee0-d42b-44f6-a462-d3724cf6aeaf nom: title: Nom du bénéficiaire effectif type: string @@ -13631,10 +14059,12 @@ paths: title: Année de la date de naissance type: string example: '1990' + nullable: true mois: title: Mois de la date de naissance type: string example: '01' + nullable: true enum: - '01' - '02' @@ -13655,11 +14085,11 @@ paths: type: string title: Nationalité du bénéficiaire effectif example: France + nullable: true pays_residence: type: string title: Pays de résidence du bénéficiaire effectif example: FRANCE - nullable: true modalites: title: Liste des modalités de contrôle du bénéficiaire effectif @@ -14268,6 +14698,7 @@ paths: - representant_legal - representant_legal_placement_sans_gestion_deleguee required: + - beneficiaire_uuid - nom - nom_usage - prenoms @@ -14286,8 +14717,17 @@ paths: title: Nombre de bénéficiaires type: integer example: 1 + beneficiaires_sans_modalites_uuids: + title: UUIDs des bénéficiaires sans modalités + type: array + description: UUIDs des bénéficiaires qui ne sont pas affichés + car sans modalité (il s'agit de représentants légaux) + items: + type: string + example: 21120ee0-d42b-44f6-a462-d3724cf6aeaf required: - count + - beneficiaires_sans_modalites_uuids additionalProperties: false links: type: object @@ -14298,6 +14738,23 @@ paths: description: Bénéficiaires effectifs non trouvés content: application/json: + examples: + entite_non_trouvee_34003: + value: + errors: + - code: '34003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INPI - RNE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -14356,7 +14813,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '34999' @@ -14438,7 +14895,7 @@ paths: source: |- curl -X GET \ -H "Authorization: Bearer $token" \ - --url "https://entreprise.api.gouv.fr/v3/inpi/rne/unites_legales/open_data/130025265/beneficiaires_effectifs?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" + --url "https://entreprise.api.gouv.fr/v3/inpi/rne/unites_legales/130025265/beneficiaires_effectifs?context=Test+de+l%27API&object=Test+de+l%27API&recipient=10000001700010" "/v3/insee/sirene/etablissements/{siret}/adresse": get: summary: Adresse établissement @@ -14479,23 +14936,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -14530,35 +14987,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -14956,6 +15395,23 @@ paths: description: Non trouvé content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -14963,7 +15419,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -15086,23 +15542,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -15137,35 +15593,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -15593,6 +16031,23 @@ paths: description: Non trouvé content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -15600,7 +16055,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -15719,17 +16174,7 @@ paths: summary: SIRET pour Qualifelec siret_qualiopi: value: '81841109200013' - summary: SIRET pour Qualiopi - required: true - schema: - type: string - - name: context - in: query - description: |- - "**Cadre de la requête** - - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + summary: SIRET pour Qualiopi required: true schema: type: string @@ -15743,6 +16188,16 @@ paths: required: true schema: type: string + - name: context + in: query + description: |- + "**Cadre de la requête** + + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test + required: true + schema: + type: string - name: object in: query description: |- @@ -15774,35 +16229,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -15943,7 +16380,11 @@ paths: voir affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -16355,7 +16796,12 @@ paths: valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de - l'Insee : https://www.insee.fr/fr/information/2120875" + l'Insee : https://www.insee.fr/fr/information/2120875. + \n \n ⚠️ À partir de janvier 2026, le code APE utilisera + la nouvelle nomenclature NAF 2025, tel qu'explicité + dans ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par + l'Insee." libelle: title: Libellé associé au code APE type: string @@ -16923,6 +17369,29 @@ paths: "$ref": "#/components/schemas/Error" '404': description: Non trouvé + content: + application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. + schema: + "$ref": "#/components/schemas/Error" + '451': + description: Indisponible pour des raisons légales content: application/json: schema: @@ -16932,7 +17401,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -17055,23 +17524,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -17106,35 +17575,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -17275,7 +17726,11 @@ paths: voir affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -17707,7 +18162,12 @@ paths: valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de - l'Insee : https://www.insee.fr/fr/information/2120875" + l'Insee : https://www.insee.fr/fr/information/2120875. + \n \n ⚠️ À partir de janvier 2026, le code APE utilisera + la nouvelle nomenclature NAF 2025, tel qu'explicité + dans ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par + l'Insee." libelle: title: Libellé associé au code APE type: string @@ -18305,6 +18765,23 @@ paths: description: Non trouvé content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -18312,7 +18789,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -18433,23 +18910,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -18484,35 +18961,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -18653,7 +19112,11 @@ paths: voir affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -19085,7 +19548,12 @@ paths: valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de - l'Insee : https://www.insee.fr/fr/information/2120875" + l'Insee : https://www.insee.fr/fr/information/2120875. + \n \n ⚠️ À partir de janvier 2026, le code APE utilisera + la nouvelle nomenclature NAF 2025, tel qu'explicité + dans ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par + l'Insee." libelle: title: Libellé associé au code APE type: string @@ -19683,6 +20151,23 @@ paths: description: Non trouvé content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -19690,7 +20175,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -19811,23 +20296,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -19863,35 +20348,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -20032,7 +20499,11 @@ paths: voir affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -20444,7 +20915,12 @@ paths: valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de - l'Insee : https://www.insee.fr/fr/information/2120875" + l'Insee : https://www.insee.fr/fr/information/2120875. + \n \n ⚠️ À partir de janvier 2026, le code APE utilisera + la nouvelle nomenclature NAF 2025, tel qu'explicité + dans ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par + l'Insee." libelle: title: Libellé associé au code APE type: string @@ -21014,6 +21490,23 @@ paths: description: Non trouvé content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -21021,7 +21514,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -21144,23 +21637,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -21176,7 +21669,7 @@ paths: type: string security: - jwt_bearer_token: [] - description: Informations sur les liens de succession entre les établissements. + description: Liste des prédécesseurs et successeurs d'un établissement. responses: '401': description: Non autorisé @@ -21194,35 +21687,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -21308,62 +21783,68 @@ paths: properties: predecesseurs: title: Établissements prédécesseurs + description: Liste des établissements prédécesseurs de l'établissement + appelé. type: array items: type: object properties: siret: - title: Siret de l'établissement prédécesseur/successeur + title: SIRET type: string example: '30613890001294' - description: Siret de l'établissement prédécesseur ou - successeur + description: SIRET de l'établissement prédécesseur. date_succession: - title: Date de succession + title: Date d'effet du lien de succession type: date example: '2021-10-15' - description: Date de succession entre les établissements + description: Date à laquelle la succession a eu lieu. transfert_siege: title: Transfert de siège type: boolean example: true - description: Indique si la succession est un transfert - de siège. + description: 'Indique si la succession est un transfert + de siège. Pour en savoir plus, consulter cette rubrique + : http://entreprise.api.gouv.fr/catalogue/insee/successions#definition-transfert-siege.' continuite_economique: title: Continuité économique type: boolean example: true - description: Indique si la succession est une continuité - économique. + description: 'Indique si la succession est une continuité + économique. Pour en savoir plus, consulter cette rubrique + : http://entreprise.api.gouv.fr/catalogue/insee/successions#definition-continuite-economique.' successeurs: title: Établissements successeurs + description: Liste des établissements successeurs de l'établissement + appelé. type: array items: type: object properties: siret: - title: Siret de l'établissement prédécesseur/successeur + title: SIRET type: string example: '30613890001294' - description: Siret de l'établissement prédécesseur ou - successeur + description: SIRET de l'établissement successeur. date_succession: - title: Date de succession + title: Date d'effet du lien de succession type: date example: '2021-10-15' - description: Date de succession entre les établissements + description: Date à laquelle la succession a eu lieu. transfert_siege: title: Transfert de siège type: boolean example: true - description: Indique si la succession est un transfert - de siège. + description: 'Indique si la succession est un transfert + de siège. Pour en savoir plus, consulter cette rubrique + : http://entreprise.api.gouv.fr/catalogue/insee/successions#definition-transfert-siege.' continuite_economique: title: Continuité économique type: boolean example: true - description: Indique si la succession est une continuité - économique. + description: 'Indique si la succession est une continuité + économique. Pour en savoir plus, consulter cette rubrique + : http://entreprise.api.gouv.fr/catalogue/insee/successions#definition-continuite-economique.' required: - predecesseurs - successeurs @@ -21380,6 +21861,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '422': @@ -21438,7 +21936,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -21559,23 +22057,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -21611,35 +22109,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -21970,7 +22450,11 @@ paths: affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -22262,6 +22746,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -22269,7 +22770,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -22396,23 +22897,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -22447,35 +22948,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -22825,7 +23308,11 @@ paths: affecter la valeur '00.00Z' de manière provisoire. \n \n Plus d'informations métier : https://entreprendre.service-public.fr/vosdroits/F33050 Nomemclature d'activité française - NAF rév.2 de l'Insee - : https://www.insee.fr/fr/information/2120875" + : https://www.insee.fr/fr/information/2120875. \n \n + ⚠️ À partir de janvier 2026, le code APE utilisera la + nouvelle nomenclature NAF 2025, tel qu'explicité dans + ce document : https://www.cnis.fr/evenements/la-revision-de-la-nomenclature-dactivites-francaise-naf-quels-effets-pour-les-utilisateurs/?category=1067. + Des tables de correspondance seront fournies par l'Insee." libelle: title: Libellé associé au code APE type: string @@ -23117,6 +23604,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_01003: + value: + errors: + - code: '01003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: INSEE + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -23124,7 +23628,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '01999' @@ -23240,23 +23744,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -23291,35 +23795,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -23543,7 +24029,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '21999' @@ -23618,6 +24104,23 @@ paths: description: Association not found content: application/json: + examples: + entite_non_trouvee_21003: + value: + errors: + - code: '21003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: MI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -23713,23 +24216,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -23764,35 +24267,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -24084,6 +24569,23 @@ paths: description: Association not found content: application/json: + examples: + entite_non_trouvee_21003: + value: + errors: + - code: '21003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: MI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -24150,7 +24652,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '21999' @@ -24214,23 +24716,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -24265,35 +24767,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -24455,6 +24939,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_10003: + value: + errors: + - code: '10003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: MSA + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -24462,7 +24963,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '10999' @@ -24554,23 +25055,23 @@ paths: tags: - Certifications professionnelles parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -24612,35 +25113,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -24904,6 +25387,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_11003: + value: + errors: + - code: '11003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: OPQIBI + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -24911,7 +25411,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '11999' @@ -25034,23 +25534,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -25085,35 +25585,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -25208,7 +25690,7 @@ paths: example: 7889238 description: 'Nombre de secondes avant l''expiration de l''url associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + généralement à 24h.' required: - document_url - expires_in @@ -25276,7 +25758,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '09999' @@ -25351,6 +25833,23 @@ paths: description: Attestation non trouvée content: application/json: + examples: + entite_non_trouvee_09003: + value: + errors: + - code: '09003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: ProBTP + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -25425,23 +25924,23 @@ paths: tags: - Attestations sociales et fiscales parameters: - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -25481,35 +25980,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -25667,6 +26148,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_09003: + value: + errors: + - code: '09003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: ProBTP + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -25674,7 +26172,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '09999' @@ -25797,23 +26295,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -25849,35 +26347,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -25972,7 +26452,7 @@ paths: example: 7889238 description: 'Nombre de secondes avant l''expiration de l''url associée à l''attribut document_url : cette durée correspond - généralement à 3 mois.' + généralement à 24h.' required: - document_url - expires_in @@ -26040,7 +26520,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '06999' @@ -26115,6 +26595,23 @@ paths: description: Certification non trouvée content: application/json: + examples: + entite_non_trouvee_06003: + value: + errors: + - code: '06003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Qualibat + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -26189,6 +26686,13 @@ paths: tags: - Certifications professionnelles parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: siret in: path description: Siret de l'établissement @@ -26223,23 +26727,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -26274,35 +26778,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -26360,6 +26846,23 @@ paths: '200': description: Certification trouvée headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). Le cache est valide jusqu'à la + fin de la journée RateLimit-Limit: schema: type: integer @@ -26563,7 +27066,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '06999' @@ -26638,6 +27141,23 @@ paths: description: Certification non trouvée content: application/json: + examples: + entite_non_trouvee_06003: + value: + errors: + - code: '06003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Qualibat + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': @@ -26746,23 +27266,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -26797,35 +27317,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -27032,7 +27534,9 @@ paths: humains possédés par l'entreprise pour réaliser les travaux liées à la qualification. Elle précise l'effectif du personnel d'exécution et d'encadrement - permanent de l'entreprise. + permanent de l'entreprise. Ce champ peut être + nul dans le cas où la qualification est une qualification + probatoire. type: object properties: code: @@ -27041,12 +27545,14 @@ paths: description: Code de la classification associé à la qualification. example: '1' + nullable: true label: title: Libellé de la classification type: string description: Libellé de la classification de la qualification. example: Classe 1 - de 1 à 3 exécutants + nullable: true required: - code - label @@ -27220,6 +27726,23 @@ paths: description: Non trouvée content: application/json: + examples: + entite_non_trouvee_32003: + value: + errors: + - code: '32003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: Qualifelec + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -27227,7 +27750,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '32999' @@ -27348,23 +27871,23 @@ paths: required: true schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -27400,35 +27923,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -27601,6 +28106,23 @@ paths: description: Entreprise non trouvée content: application/json: + examples: + entite_non_trouvee_22003: + value: + errors: + - code: '22003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: RNM + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '502': @@ -27608,7 +28130,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '22999' @@ -27736,23 +28258,23 @@ paths: de données. schema: type: string - - name: context + - name: recipient in: query description: |- - "**Cadre de la requête** + "**Bénéficiaire de l’appel** - Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." - example: Context de test + SIRET de l’administration destinatrice des données." + example: '13002526500013' required: true schema: type: string - - name: recipient + - name: context in: query description: |- - "**Bénéficiaire de l’appel** + "**Cadre de la requête** - SIRET de l’administration destinatrice des données." - example: '13002526500013' + Par exemple : aides publiques, marchés publics ou gestion d’un référentiel tiers utilisé pour tel type d’application." + example: Context de test required: true schema: type: string @@ -27788,35 +28310,17 @@ paths: meta: {} summary: Interdit description: Votre token n'est pas valide ou n'est pas renseigné - old_token_error: - value: - errors: - - code: '00102' - title: Format de jeton plus supporté - detail: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire - une demande à API Entreprise, un guide est disponible sur - https://entreprise.api.gouv.fr/demander_un_acces/ - source: - parameter: token - meta: {} - summary: Format de jeton plus supporté - description: Vous avez utilisé un token à l'ancien format. Ce format - n'est plus supporté depuis avril 2019. Vous devez refaire une - demande à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/demander_un_acces/ expired_token_error: value: errors: - code: '00103' title: Jeton expiré detail: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration source: parameter: token meta: {} summary: Jeton expiré description: Votre token est expiré. Vous devez refaire une demande - à API Entreprise, un guide est disponible sur https://entreprise.api.gouv.fr/faq#comment-renouveler-mon-jeton-arrivant-a-expiration blacklisted_token_error: value: errors: @@ -28065,7 +28569,7 @@ paths: content: application/json: examples: - unknown_error: + provider_unknown_error: value: errors: - code: '04999' @@ -28171,6 +28675,23 @@ paths: description: Entreprise non trouvée content: application/json: + examples: + entite_non_trouvee_04003: + value: + errors: + - code: '04003' + title: Entité non trouvée + detail: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez + vérifier que l'identifiant correspond au périmètre couvert + par l'API. + source: + meta: + provider: ACOSS + summary: Entité non trouvée + description: Le siret ou siren indiqué n'existe pas, n'est pas connu + ou ne comporte aucune information pour cet appel. Veuillez vérifier + que l'identifiant correspond au périmètre couvert par l'API. schema: "$ref": "#/components/schemas/Error" '504': diff --git a/config/api-particulier-openapi-v3.yml b/config/api-particulier-openapi-v3.yml new file mode 100644 index 000000000..1fc734b5c --- /dev/null +++ b/config/api-particulier-openapi-v3.yml @@ -0,0 +1,7254 @@ +--- +openapi: 3.0.0 +info: + title: API Particulier + version: 3.0.0 + description: | + ## Bienvenue sur la documentation interactive d'API Particulier. + + ### Commencer à utiliser l'API + + API Particulier est une API en accès restreint, ce qui signifie qu'il vous faut remplir une [demande d'habilitation](https://datapass.api.gouv.fr) avant de pouvoir l'utiliser avec des vraies données. + + Afin de tester l'API avant la validation de votre demande d'habilitation, nous avons mis en place un bac à sable de l'API qui reproduit les comportements de l'API en production. + + Dans cet environnement, les données sont fictives et éditables par tout le monde. Cet environnement essaye de simuler au mieux les compotements en production en fournissant des réponses à un ensemble de paramètre fixe. + Pour accéder à l'environnement de staging, référez-vous à la [documentation](https://particulier.api.gouv.fr/developpeurs#tester-api-preproduction). + + Le bac à sable et l'API de production sont appelables par deux adresses distinctes : + + - bac à sable : [https://staging.particulier.api.gouv.fr](https://staging.particulier.api.gouv.fr) + - production : [https://particulier.api.gouv.fr](https://particulier.api.gouv.fr) + + Pour récupérer le jeton de production un portail développeur est mis à votre disposition à l'adresse suivante : [https://particulier.api.gouv.fr/compte](https://particulier.api.gouv.fr/compte) + + Pour effectuer vos tests sur le bac à sable, référez-vous à ce dépôt github: [etalab/siade_staging_data](https://github.com/etalab/siade_staging_data/) (l'ancien système basé sur Airtable n'est plus maintenu et va être remplacé par le nouveau système). Un jeton nommé default est disponible ici: [tokens](https://github.com/etalab/siade_staging_data/tree/develop/tokens) + + ### Périmètre des données retournées + + **Important :** le contenu du jeu de données retourné dépend des _scopes_ ou _périmètres_ du jeton utilisé. + + En effet, les disposition de l'article [L144-8](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000045213315) n'autorisent que l'échange des informations **strictement nécessaires** pour traiter une démarche. + + Afin de respecter ce devoir de minimisation de la donnée, chaque jeton est associé, par la demande d'habilitation, à des _scopes_ agissant comme des masques sur la donnée. + + Ainsi, pour pouvoir lire de la donnée, il est nécessaire de cocher lors de votre [demande d'habilitation](https://datapass.api.gouv.fr) une ou plusieurs cases correspondant aux données du même fournisseur, votre jeton possèdera alors les _scopes_ associés aux données cochées. + + En conséquence, suivant le jeton utilisé, une même requête peut retourner des résultats différents. + + **Attention :** La documentation ci-dessous ne prend pas en compte les _scopes_, qui agissent comme masques de la donnée retournée par l'API. Cette documentation suppose donc que votre jeton permet d'accéder à la donnée décrite. + + ### Passer son service en production + + Lors de votre passage en production : + + - remplacez l'URL de staging.particulier.api.gouv.fr à particulier.api.gouv.fr + - remplacez le jeton de test par le jeton obtenu sur [le portail API Particulier](https://particulier.api.gouv.fr/compte) + termsOfService: https://api.gouv.fr/resources/CGU%20API%20Particulier.pdf + contact: + name: Contact API Particulier + email: api-particulier@api.gouv.fr + url: https://particulier.api.gouv.fr/ + license: + name: GNU Affero General Public License v3.0 + url: https://github.com/betagouv/api-particulier/blob/master/LICENSE +tags: [] +paths: + "/v3/dss/allocation_adulte_handicape/identite": + get: + summary: Statut allocation adulte handicapé (AAH) + tags: + - Statut Allocation Adulte Handicapé (AAH) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de l'allocation adulte handicapé (AAH). \n\n + Retourne également des informations sur les dates d'ouverture des droits." + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Allocation Adulte Handicape active trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_allocation_adulte_handicape_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de l'allocation adulte handicapé + (AAH) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + l'allocation adulte handicapé au moment de l'appel. + date_debut_droit: + title: Date d'ouverture du droit à l'AAH + type: string + nullable: true + description: "Date de début de droit à l'allocation adulte + handicapé du particulier bénéficiaire. \n Ce champs est + null dans le cas où le particulier n'est pas bénéficiaire + de l'AAH." + example: '1992-11-29' + required: + - est_beneficiaire + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/allocation_adulte_handicape/france_connect": + get: + summary: Statut allocation adulte handicapé (AAH) + tags: + - Statut Allocation Adulte Handicapé (AAH) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de l'allocation adulte handicapé (AAH). \n\n + Retourne également des informations sur les dates d'ouverture des droits." + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_allocation_adulte_handicape_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de l'allocation adulte handicapé + (AAH) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + l'allocation adulte handicapé au moment de l'appel. + date_debut_droit: + title: Date d'ouverture du droit à l'AAH + type: string + nullable: true + description: "Date de début de droit à l'allocation adulte + handicapé du particulier bénéficiaire. \n Ce champs est + null dans le cas où le particulier n'est pas bénéficiaire + de l'AAH." + example: '1992-11-29' + required: + - est_beneficiaire + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/allocation_soutien_familial/identite": + get: + summary: Statut allocation de soutien familial (ASF) + tags: + - Statut Allocation Soutien Familial (ASF) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de l'allocation de soutien familial (ASF). + \n\n Retourne également des informations sur les dates d'ouverture et de fermeture + des droits." + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Allocation Soutien Familial active trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_allocation_soutien_familial_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de l'allocation de soutien familial + (ASF) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + l'allocation de soutien familial au moment de l'appel. + date_debut_droit: + title: Date d'ouverture du droit à l'ASF + type: string + nullable: true + description: "Date de début de droit à l'allocation de soutien + familial du particulier bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + l'ASF." + example: '1992-11-29' + required: + - est_beneficiaire + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/allocation_soutien_familial/france_connect": + get: + summary: Statut allocation de soutien familial (ASF) + tags: + - Statut Allocation Soutien Familial (ASF) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de l'allocation de soutien familial (ASF). + \n\n Retourne également des informations sur les dates d'ouverture et de fermeture + des droits." + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_allocation_soutien_familial_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de l'allocation de soutien familial + (ASF) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + l'allocation de soutien familial au moment de l'appel. + date_debut_droit: + title: Date d'ouverture du droit à l'ASF + type: string + nullable: true + description: "Date de début de droit à l'allocation de soutien + familial du particulier bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + l'ASF." + example: '1992-11-29' + required: + - est_beneficiaire + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/complementaire_sante_solidaire/identite": + get: + summary: Statut complémentaire santé solidaire (C2S) + tags: + - Statut Complémentaire Santé Solidaire (C2S) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de la complémentaire santé solidaire (C2S). + \n\n Retourne également des informations sur les dates d'ouverture des droits. + \n Pour plus d'informations sur cette API et obtenir un accès en avant-première, + veuillez contacter l'équipe API Particulier. \n **Données disponibles en bac + à sable :** [Liste de payloads de test](https://github.com/etalab/siade_staging_data/blob/develop/payloads/complementaire_sante_solidaire)" + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Complementaire Sante Solidaire trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_complementaire_sante_solidaire_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de la complémentaire de santé solidaire + (C2S) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + la complémentaire de santé solidaire au moment de l'appel. + avec_participation: + title: C2S avec participation financière + type: boolean + example: false + nullable: true + description: "Indique que la C2S du particulier bénéficiaire + est avec participation financière. \n Si ce champ est à + false, cela signifie que la C2S est sans participation financière + de la part de l'allocataire. \n Ce champ est null dans le + cas où le particulier n'est pas bénéficiaire de la C2S." + date_debut_droit: + title: Date d'ouverture du droit à la C2S + type: string + nullable: true + description: "Date de début de droit à la complémentaire santé + solidaire du particulier bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + la C2S." + example: '1992-11-29' + required: + - est_beneficiaire + - avec_participation + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/complementaire_sante_solidaire/france_connect": + get: + summary: Statut complémentaire santé solidaire (C2S) + tags: + - Statut Complémentaire Santé Solidaire (C2S) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de la complémentaire santé solidaire (C2S). + \n\n Retourne également des informations sur les dates d'ouverture des droits. + \n Pour plus d'informations sur cette API et obtenir un accès en avant-première, + veuillez contacter l'équipe API Particulier. \n **Données disponibles en bac + à sable :** [Liste de payloads de test](https://github.com/etalab/siade_staging_data/blob/develop/payloads/complementaire_sante_solidaire)" + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_complementaire_sante_solidaire_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de la complémentaire de santé solidaire + (C2S) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + la complémentaire de santé solidaire au moment de l'appel. + avec_participation: + title: C2S avec participation financière + type: boolean + example: false + nullable: true + description: "Indique que la C2S du particulier bénéficiaire + est avec participation financière. \n Si ce champ est à + false, cela signifie que la C2S est sans participation financière + de la part de l'allocataire. \n Ce champ est null dans le + cas où le particulier n'est pas bénéficiaire de la C2S." + date_debut_droit: + title: Date d'ouverture du droit à la C2S + type: string + nullable: true + description: "Date de début de droit à la complémentaire santé + solidaire du particulier bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + la C2S." + example: '1992-11-29' + required: + - est_beneficiaire + - avec_participation + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/prime_activite/identite": + get: + summary: Statut prime d'activité + tags: + - Statut Prime Activité + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de la prime d'activité, majorée ou non. \n\n + Retourne également des informations sur les dates d'ouverture des droits." + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Prime Activite active trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_prime_activite_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de la prime d'activité + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + la prime d'activité au moment de l'appel. + avec_majoration: + title: Prime d'activité majorée + type: boolean + nullable: true + description: "Indique que la prime d'activité du particulier + bénéficiaire est majorée au moment de l'appel. \n Si ce + champ est à false, cela signifie que la prime d'activité + n'est pas majorée. \n Ce champ sera null si le particulier + n'est pas bénéficiaire de la prime d'activité." + example: false + date_debut_droit: + title: Date d'ouverture du droit à la prime d'activité + type: string + nullable: true + description: "Date de début de droit à la prime d'activité + si le particulier est bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + la prime d'activité." + example: '1992-11-20' + required: + - est_beneficiaire + - avec_majoration + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/prime_activite/france_connect": + get: + summary: Statut prime d'activité + tags: + - Statut Prime Activité + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire de la prime d'activité, majorée ou non. \n\n + Retourne également des informations sur les dates d'ouverture des droits." + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_prime_activite_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire de la prime d'activité + type: boolean + example: true + description: Indique que le particulier est bénéficiaire de + la prime d'activité au moment de l'appel. + avec_majoration: + title: Prime d'activité majorée + type: boolean + nullable: true + description: "Indique que la prime d'activité du particulier + bénéficiaire est majorée au moment de l'appel. \n Si ce + champ est à false, cela signifie que la prime d'activité + n'est pas majorée. \n Ce champ sera null si le particulier + n'est pas bénéficiaire de la prime d'activité." + example: false + date_debut_droit: + title: Date d'ouverture du droit à la prime d'activité + type: string + nullable: true + description: "Date de début de droit à la prime d'activité + si le particulier est bénéficiaire. \n Ce champ est null + dans le cas où le particulier n'est pas bénéficiaire de + la prime d'activité." + example: '1992-11-20' + required: + - est_beneficiaire + - avec_majoration + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/quotient_familial/identite": + get: + summary: Quotient familial CAF & MSA + tags: + - Quotient familial CAF & MSA + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Quotient familial délivré par la CAF ou la MSA et composition + de la famille de l'allocataire. \n Pour plus d'informations sur cette API + et obtenir un accès en avant-première, veuillez contacter l'équipe API Particulier. + \n **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/api_particulier_v2_cnav_quotient_familial_v2)" + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Quotient Familial active trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 24 heure. + x-operationId: api_particulier_v3_cnav_quotient_familial_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + allocataires: + title: Données d'identité de l'allocataire et du conjoint + type: array + minItems: 1 + description: Liste des données d'identité de l'allocataire + appelé et de celles du conjoint le cas échéant. La provenance + de ces données n'est pas sourcée précisément et diffère + selon la CAF ou la MSA. + items: + type: object + properties: + nom_naissance: + title: Nom + type: string + description: Nom de naissance de l'allocataire ou du + conjoint. + example: JACQUES + nom_usage: + title: Nom d'usage + type: string + description: Nom d'usage de l'allocataire ou du conjoint. + example: DUPONT + nullable: true + prenoms: + title: Prénoms + type: string + description: Prénoms de l'allocataire ou du conjoint. + example: JEAN-PIERRE THOMAS + date_naissance: + title: Date de naissance + description: Date de naissance de l'allocataire ou du + conjoint au format AAAA-MM-JJ. + type: string + example: '2000-01-20' + sexe: + title: Sexe + type: string + description: Sexe de l'allocataire ou du conjoint. + example: M + enum: + - F + - M + enfants: + type: array + title: Données d'identité des enfants composant la famille + description: Liste des données d'identité des enfants composant + la famille, le cas échéant. La provenance de ces données + n'est pas sourcée précisément et diffère selon la CAF ou + la MSA. + items: + type: object + properties: + nom_naissance: + title: Nom de naissance + type: string + description: Nom de naissance de l'enfant. + example: DUPONT + nom_usage: + title: Nom d'usage + type: string + description: Nom d'usage de l'enfant. + example: + nullable: true + prenoms: + title: Prénoms + type: string + description: Prénoms de l'enfant. + example: JEAN-PIERRE THOMAS JUNIOR + date_naissance: + title: Date de naissance + description: Date de naissance de l'enfant au format + AAAA-MM-JJ. + type: string + example: '2000-01-20' + sexe: + title: Sexe + type: string + description: Sexe de l'enfant. + example: M + enum: + - F + - M + adresse: + title: Adresse de la famille + type: object + description: Adresse de la famille au format de la poste. + properties: + destinataire: + title: Identité du destinataire + type: string + example: Monsieur JEAN JACQUES + description: 'Identité du destinataire : Civilité, titre + ou qualité + nom et prénom' + complement_information: + title: Complément d'information du destinataire ou point + de remise + type: string + nullable: true + example: + complement_information_geographique: + title: Complément d'information du point géographique + type: string + nullable: true + example: + numero_libelle_voie: + title: Voie + type: string + description: Numéro et libellé de la voie. + example: 1 RUE DE LA GARE + nullable: true + lieu_dit: + title: Lieu-dit + type: string + nullable: true + example: + description: 'Lieu-dit ou service particulier de distribution + : poste restante, boîte postale.' + code_postal_ville: + title: Code postal + type: string + description: Code postal et localité de destination. + example: '75002' + pays: + title: Pays + type: string + example: FRANCE + required: + - destinataire + - complement_information + - complement_information_geographique + - numero_libelle_voie + - lieu_dit + - code_postal_ville + - pays + quotient_familial: + title: Informations du quotient familial (QF) + type: object + description: Données relatives à l'attribution du quotient + familial CAF ou MSA. + properties: + fournisseur: + title: Fournisseur du QF + type: string + description: Indique si le quotient familial de l'allocataire + provient de la CAF ou de la MSA. + example: MSA + enum: + - CNAF + - MSA + valeur: + title: Valeur du QF + type: integer + description: Valeur du quotient familial calculé par la + CAF ou la MSA. + example: 1045 + annee: + title: Année effective du QF + type: integer + description: "Ce champ indique l'année effective du quotient + familial appelé. C'est-à-dire l'année à laquelle s'applique + le quotient familial. Cette année peut être différente + de l'année de calcul du quotient si ce dernier a été + recalculé suite à la réception d'informations rectifiant + la situation de l'allocataire. \n\n - Si aucune année + et aucun mois n'ont été renseignés en paramètres d'appel, + le quotient familial retourné sera celui du mois de + l'année en cours. - Si aucune année n'a été renseignée + et que le mois est renseigné, le quotient familial retourné + sera celui du mois spécifié pour l'année en cours. En + revanche, si la date finalement composée avec cette + règle s'avère dans le futur (mois postérieur au moins + en cours), l'API renvoie un erreur 400. " + example: 2023 + mois: + title: Mois effectif du QF + type: integer + description: "Mois effectif du quotient familial. C'est-à-dire + le mois auquel s'applique le quotient familial. Ce mois + peut être différent du mois de calcul du quotient si + ce dernier a été recalculé suite à la réception d'informations + rectifiant la situation de l'allocataire. \n\n - Si + aucun mois et aucune année n'ont été renseignés en paramètres + d'appel, le quotient familial retourné sera celui du + mois de l'année en cours. - Si le mois est renseigné + mais qu'aucune année n'est saisie, le quotient familial + retourné sera celui du mois spécifié pour l'année en + cours. En revanche, si la date finalement composée avec + cette règle s'avère dans le futur (mois postérieur au + moins en cours), l'API renvoie un erreur 400. - Si aucun + mois n'a été renseigné mais que l'année a été spécifiée + en paramètres d'appel, le quotient familial retourné + sera celui du mois en cours pour l'année spécifiée." + example: 6 + annee_calcul: + title: Année du calcul du QF + type: integer + description: "Année lors de laquelle le calcul du quotient + familial demandé a été effectué. Cette année peut différer + de l'année effective du quotient familial. \n\n Pour + la CAF, le quotient familial est recalculé uniquement + si de nouvelles informations sont venues rectifier la + situation de l'allocataire. \n Pour la MSA, le quotient + familial est systématiquement recalculé ; l'année correspond + donc toujours à l'année courante." + example: 2023 + mois_calcul: + title: Mois du calcul du QF + type: integer + description: "Mois lors duquel le calcul du quotient familial + demandé a été effectué. Ce mois peut différer du mois + effectif du quotient familial. \n\n Pour la CAF, le + quotient familial est recalculé uniquement si de nouvelles + informations sont venues rectifier la situation de l'allocataire. + \n Pour la MSA, le quotient familial est systématiquement + recalculé ; le mois correspond donc toujours au mois + en cours." + example: 9 + required: + - fournisseur + - valeur + - annee + - mois + - annee_calcul + - mois_calcul + required: + - allocataires + - enfants + - adresse + - quotient_familial + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '422': + description: Impossible d'identifier l'allocataire + content: + application/json: + examples: + entite_non_traitable_00366: + value: + errors: + - code: '00366' + title: Entité non traitable + detail: Un ou plusieurs paramètres de civilité ne sont pas correctement + formatés + source: + meta: {} + summary: Entité non traitable + description: Un ou plusieurs paramètres de civilité ne sont pas + correctement formatés + schema: + "$ref": "#/components/schemas/Error" + '404': + description: Dossier allocataire inexistant. Le document ne peut être édité. + content: + application/json: + examples: + dossier_allocataire_absent_msa_10003: + value: + errors: + - code: '10003' + title: Dossier allocataire absent MSA + detail: Le dossier allocataire n'a pas été trouvé auprès de + la MSA. + source: + meta: + provider: MSA + summary: Dossier allocataire absent MSA + description: Le dossier allocataire n'a pas été trouvé auprès de + la MSA. + dossier_allocataire_absent_cnaf_37003: + value: + errors: + - code: '37003' + title: Dossier allocataire absent CNAF + detail: Le dossier allocataire n'a pas été trouvé auprès de + la CNAF. + source: + meta: + provider: CNAV + summary: Dossier allocataire absent CNAF + description: Le dossier allocataire n'a pas été trouvé auprès de + la CNAF. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/quotient_familial/france_connect": + get: + summary: Quotient familial CAF & MSA + tags: + - Quotient familial CAF & MSA + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Quotient familial délivré par la CAF ou la MSA et composition + de la famille de l'allocataire. \n Pour plus d'informations sur cette API + et obtenir un accès en avant-première, veuillez contacter l'équipe API Particulier. + \n **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/api_particulier_v2_cnav_quotient_familial_v2)" + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 24 heure. + x-operationId: api_particulier_v3_cnav_quotient_familial_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + allocataires: + title: Données d'identité de l'allocataire et du conjoint + type: array + minItems: 1 + description: Liste des données d'identité de l'allocataire + appelé et de celles du conjoint le cas échéant. La provenance + de ces données n'est pas sourcée précisément et diffère + selon la CAF ou la MSA. + items: + type: object + properties: + nom_naissance: + title: Nom + type: string + description: Nom de naissance de l'allocataire ou du + conjoint. + example: JACQUES + nom_usage: + title: Nom d'usage + type: string + description: Nom d'usage de l'allocataire ou du conjoint. + example: DUPONT + nullable: true + prenoms: + title: Prénoms + type: string + description: Prénoms de l'allocataire ou du conjoint. + example: JEAN-PIERRE THOMAS + date_naissance: + title: Date de naissance + description: Date de naissance de l'allocataire ou du + conjoint au format AAAA-MM-JJ. + type: string + example: '2000-01-20' + sexe: + title: Sexe + type: string + description: Sexe de l'allocataire ou du conjoint. + example: M + enum: + - F + - M + enfants: + type: array + title: Données d'identité des enfants composant la famille + description: Liste des données d'identité des enfants composant + la famille, le cas échéant. La provenance de ces données + n'est pas sourcée précisément et diffère selon la CAF ou + la MSA. + items: + type: object + properties: + nom_naissance: + title: Nom de naissance + type: string + description: Nom de naissance de l'enfant. + example: DUPONT + nom_usage: + title: Nom d'usage + type: string + description: Nom d'usage de l'enfant. + example: + nullable: true + prenoms: + title: Prénoms + type: string + description: Prénoms de l'enfant. + example: JEAN-PIERRE THOMAS JUNIOR + date_naissance: + title: Date de naissance + description: Date de naissance de l'enfant au format + AAAA-MM-JJ. + type: string + example: '2000-01-20' + sexe: + title: Sexe + type: string + description: Sexe de l'enfant. + example: M + enum: + - F + - M + adresse: + title: Adresse de la famille + type: object + description: Adresse de la famille au format de la poste. + properties: + destinataire: + title: Identité du destinataire + type: string + example: Monsieur JEAN JACQUES + description: 'Identité du destinataire : Civilité, titre + ou qualité + nom et prénom' + complement_information: + title: Complément d'information du destinataire ou point + de remise + type: string + nullable: true + example: + complement_information_geographique: + title: Complément d'information du point géographique + type: string + nullable: true + example: + numero_libelle_voie: + title: Voie + type: string + description: Numéro et libellé de la voie. + example: 1 RUE DE LA GARE + nullable: true + lieu_dit: + title: Lieu-dit + type: string + nullable: true + example: + description: 'Lieu-dit ou service particulier de distribution + : poste restante, boîte postale.' + code_postal_ville: + title: Code postal + type: string + description: Code postal et localité de destination. + example: '75002' + pays: + title: Pays + type: string + example: FRANCE + required: + - destinataire + - complement_information + - complement_information_geographique + - numero_libelle_voie + - lieu_dit + - code_postal_ville + - pays + quotient_familial: + title: Informations du quotient familial (QF) + type: object + description: Données relatives à l'attribution du quotient + familial CAF ou MSA. + properties: + fournisseur: + title: Fournisseur du QF + type: string + description: Indique si le quotient familial de l'allocataire + provient de la CAF ou de la MSA. + example: MSA + enum: + - CNAF + - MSA + valeur: + title: Valeur du QF + type: integer + description: Valeur du quotient familial calculé par la + CAF ou la MSA. + example: 1045 + annee: + title: Année effective du QF + type: integer + description: "Ce champ indique l'année effective du quotient + familial appelé. C'est-à-dire l'année à laquelle s'applique + le quotient familial. Cette année peut être différente + de l'année de calcul du quotient si ce dernier a été + recalculé suite à la réception d'informations rectifiant + la situation de l'allocataire. \n\n - Si aucune année + et aucun mois n'ont été renseignés en paramètres d'appel, + le quotient familial retourné sera celui du mois de + l'année en cours. - Si aucune année n'a été renseignée + et que le mois est renseigné, le quotient familial retourné + sera celui du mois spécifié pour l'année en cours. En + revanche, si la date finalement composée avec cette + règle s'avère dans le futur (mois postérieur au moins + en cours), l'API renvoie un erreur 400. " + example: 2023 + mois: + title: Mois effectif du QF + type: integer + description: "Mois effectif du quotient familial. C'est-à-dire + le mois auquel s'applique le quotient familial. Ce mois + peut être différent du mois de calcul du quotient si + ce dernier a été recalculé suite à la réception d'informations + rectifiant la situation de l'allocataire. \n\n - Si + aucun mois et aucune année n'ont été renseignés en paramètres + d'appel, le quotient familial retourné sera celui du + mois de l'année en cours. - Si le mois est renseigné + mais qu'aucune année n'est saisie, le quotient familial + retourné sera celui du mois spécifié pour l'année en + cours. En revanche, si la date finalement composée avec + cette règle s'avère dans le futur (mois postérieur au + moins en cours), l'API renvoie un erreur 400. - Si aucun + mois n'a été renseigné mais que l'année a été spécifiée + en paramètres d'appel, le quotient familial retourné + sera celui du mois en cours pour l'année spécifiée." + example: 6 + annee_calcul: + title: Année du calcul du QF + type: integer + description: "Année lors de laquelle le calcul du quotient + familial demandé a été effectué. Cette année peut différer + de l'année effective du quotient familial. \n\n Pour + la CAF, le quotient familial est recalculé uniquement + si de nouvelles informations sont venues rectifier la + situation de l'allocataire. \n Pour la MSA, le quotient + familial est systématiquement recalculé ; l'année correspond + donc toujours à l'année courante." + example: 2023 + mois_calcul: + title: Mois du calcul du QF + type: integer + description: "Mois lors duquel le calcul du quotient familial + demandé a été effectué. Ce mois peut différer du mois + effectif du quotient familial. \n\n Pour la CAF, le + quotient familial est recalculé uniquement si de nouvelles + informations sont venues rectifier la situation de l'allocataire. + \n Pour la MSA, le quotient familial est systématiquement + recalculé ; le mois correspond donc toujours au mois + en cours." + example: 9 + required: + - fournisseur + - valeur + - annee + - mois + - annee_calcul + - mois_calcul + required: + - allocataires + - enfants + - adresse + - quotient_familial + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '422': + description: Impossible d'identifier l'allocataire + content: + application/json: + examples: + entite_non_traitable_00366: + value: + errors: + - code: '00366' + title: Entité non traitable + detail: Un ou plusieurs paramètres de civilité ne sont pas correctement + formatés + source: + meta: {} + summary: Entité non traitable + description: Un ou plusieurs paramètres de civilité ne sont pas + correctement formatés + schema: + "$ref": "#/components/schemas/Error" + '404': + description: Dossier allocataire inexistant. Le document ne peut être édité. + content: + application/json: + examples: + dossier_allocataire_absent_msa_10003: + value: + errors: + - code: '10003' + title: Dossier allocataire absent MSA + detail: Le dossier allocataire n'a pas été trouvé auprès de + la MSA. + source: + meta: + provider: MSA + summary: Dossier allocataire absent MSA + description: Le dossier allocataire n'a pas été trouvé auprès de + la MSA. + dossier_allocataire_absent_cnaf_37003: + value: + errors: + - code: '37003' + title: Dossier allocataire absent CNAF + detail: Le dossier allocataire n'a pas été trouvé auprès de + la CNAF. + source: + meta: + provider: CNAV + summary: Dossier allocataire absent CNAF + description: Le dossier allocataire n'a pas été trouvé auprès de + la CNAF. + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/revenu_solidarite_active/identite": + get: + summary: Statut revenu de solidarité active (RSA) + tags: + - Statut Revenu Solidarité Active (RSA) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: nomUsage + in: query + description: "**Nom d'usage**. \n\nSi le particulier a un nom d'usage, c'est + le nom qu'il utilise généralement au quotidien. Le nom d'usage est facultatif + et peut changer au cours de la vie. Il correspond au nom de famille/naissance + d'un parent, d'un époux ou d'une épouse, seul ou accolé au nom de famille/naissance. + Par exemple, le nom d'usage ne peut pas être le nom de famille/naissance + d'un concubin ou d'un partenaire de pacs. \n\nSi le particulier en a fait + la demande, le nom d'usage peut être inscrit derrière le nom de naissance + sur la carte d'identité ou le passeport ; il peut également être celui utilisé + par l'administration sur les courriers. Le nom d'usage ne remplace pas le + nom de famille/naissance qui reste le seul mentionné. \nDans nos APIs, le + nom d'usage n'est jamais identique au nom de famille.\n\nPour en savoir + plus : https://www.service-public.fr/particuliers/vosdroits/F868." + example: DUPONT DURANT + required: false + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: false + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**. \n\nCette valeur est ignorée si le paramètre + 'anneeDateNaissance' est vide." + example: 1 + required: false + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**. \n\nCette valeur est ignorée si le paramètre + 'moisDateNaissance' ou le paramètre 'anneeDateNaissance' est vide.\"" + example: 1 + required: false + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseePaysNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '99100' + description: |- + **Code Insee à 5 chiffres du pays de naissance**. + + - Code Insee France = 99100 ; + - Liste de tous les codes Insee des pays étrangers depuis 1943 : https://explore.data.gouv.fr/fr/datasets/58c984b088ee386cdb1261f3/#/resources/150889d3-ffda-4ea5-8709-6ee67415294f. + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance'), + ce paramètre est obligatoire si la personne est née en France.\n\nNe pas + remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire du revenu de solidarité active (RSA), majoré + ou non. \n\n Retourne également des informations sur les dates d'ouverture + des droits." + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Revenu solidarité active trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_revenu_solidarite_active_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire du revenu de solidarité active + (RSA) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire du + revenu de solidarité active au moment de l'appel. + avec_majoration: + title: RSA majoré + type: boolean + nullable: true + description: "Indique que le RSA du particulier bénéficiaire + est majoré au moment de l'appel. \n Si ce champ est à false, + cela signifie que le RSA n'est pas majoré. \n Ce champ est + null dans le cas où le particulier n'est pas bénéficiaire + du RSA." + example: false + date_debut_droit: + title: Date d'ouverture du droit au RSA + type: string + nullable: true + description: "Date de début de droit au RSA du particulier + bénéficiaire. \n Ce champ est null dans le cas où le particulier + n'est pas bénéficiaire du RSA." + example: '1992-11-29' + required: + - est_beneficiaire + - avec_majoration + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '37999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNAV + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '37002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNAV + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '37001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNAV + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '37004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNAV + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + provider_error: + value: + errors: + - code: '37008' + title: 'Erreur auprès du fournisseur de données : trop de requêtes' + detail: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + source: + meta: + provider: CNAV + summary: 'Erreur auprès du fournisseur de données : trop de requêtes' + description: 'Erreur de fournisseur de donnée : Trop de requêtes + effectuées, veuillez réessayer plus tard.' + schema: + "$ref": "#/components/schemas/Error" + "/v3/dss/revenu_solidarite_active/france_connect": + get: + summary: Statut revenu de solidarité active (RSA) + tags: + - Statut Revenu Solidarité Active (RSA) + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: "Statut bénéficiaire du revenu de solidarité active (RSA), majoré + ou non. \n\n Retourne également des informations sur les dates d'ouverture + des droits." + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. + x-operationId: api_particulier_v3_cnav_revenu_solidarite_active_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_beneficiaire: + title: Statut bénéficiaire du revenu de solidarité active + (RSA) + type: boolean + example: true + description: Indique que le particulier est bénéficiaire du + revenu de solidarité active au moment de l'appel. + avec_majoration: + title: RSA majoré + type: boolean + nullable: true + description: "Indique que le RSA du particulier bénéficiaire + est majoré au moment de l'appel. \n Si ce champ est à false, + cela signifie que le RSA n'est pas majoré. \n Ce champ est + null dans le cas où le particulier n'est pas bénéficiaire + du RSA." + example: false + date_debut_droit: + title: Date d'ouverture du droit au RSA + type: string + nullable: true + description: "Date de début de droit au RSA du particulier + bénéficiaire. \n Ce champ est null dans le cas où le particulier + n'est pas bénéficiaire du RSA." + example: '1992-11-29' + required: + - est_beneficiaire + - avec_majoration + - date_debut_droit + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Dossier non trouvé + content: + application/json: + examples: + entite_non_trouvee_37003: + value: + errors: + - code: '37003' + title: Entité non trouvée + detail: Dossier allocataire inexistant. Le document ne peut + être édité. + source: + meta: + provider: CNAV + summary: Entité non trouvée + description: Dossier allocataire inexistant. Le document ne peut + être édité. + schema: + "$ref": "#/components/schemas/Error" + "/v3/cnous/etudiant_boursier/identite": + get: + summary: Status étudiant boursier + tags: + - Statut étudiant boursier + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: true + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**." + example: 1 + required: true + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**." + example: 1 + required: true + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: false + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance').\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: Statut et échelon boursier d'un étudiant, délivrés par le Cnous. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_cnous_etudiant_boursier_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_boursier: + title: Statut boursier + type: boolean + description: Indique si l'étudiant est boursier + example: true + periode_versement_bourse: + title: Période de versement de la bourse + description: Informations relatives à la période de versement + de la bourse de l'étudiant. + type: object + properties: + date_rentree: + title: Date de rentrée + type: string + format: date + description: Date de rentrée scolaire ou universitaire + de l'étudiant, correspondant au début de la période + de versement de la bourse. + example: '2019-09-01' + duree: + title: Durée de versement + type: number + description: Nombre de mois de versement de la bourse + à l'étudiant. + example: 12 + required: + - date_rentree + - duree + etablissement_etudes: + title: Établissement d'études de l'étudiant + description: Contient le détail des informations concernant + l'établissement dans lequel l'étudiant fait ses études + type: object + properties: + nom_commune: + title: Ville d'études + type: string + description: Libellé de la ville d'études de l'étudiant + example: Brest + nom_etablissement: + title: Établissement d'études + type: string + description: L'établissement d'études de l'étudiant + example: Carnot + required: + - nom_commune + - nom_etablissement + echelon_bourse: + title: Échelon de la bourse + description: Informations relatives à l'échelon de la bourse + type: object + properties: + echelon: + title: Échelon de la bourse + type: string + description: "Ce champ indique l'échelon de la bourse + de l'étudiant. Il existe 8 échelons de bourse, de 0bis + à 7, correspondant aux montants reçus par l'étudiant + pour l'année scolaire. \n\n Pour en savoir plus, consulter + la FAQ : https://particulier.api.gouv.fr/catalogue/cnous/statut_etudiant_boursier#faq_entry_answer_0_api_particulier_endpoint_cnous_statut_etudiant_boursier." + example: '6' + enum: + - 0bis + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + echelon_bourse_regionale_provisoire: + title: Statut provisoire de l'échelon (bourses régionales + uniquement) + description: Ce champs indique que l'échelon de la bourse + est provisoire. Ce statut provisoire de l'échelon n'est + effectif que pour les boursiers bénéficiaires d'une + bourse régionale. + type: boolean + example: true + enum: + - true + - false + required: + - echelon + - echelon_bourse_regionale_provisoire + email: + title: E-mail + type: string + description: Adresse e-mail de l'étudiant boursier. + example: georges@moustaki.fr + identite: + title: Données d'identité + type: object + description: "Données d'identité de l'étudiant boursier. Ces + informations d'identité sont saisies manuellement par les + étudiants. \n\n - Dans le cas des étudiants avec bourse + nationale, les informations sont vérifiées par un agent + via la pièce d'identité fournie (sauf le lieu de naissance) + ; \n\n - Dans le cas des étudiants avec bourse régionale, + les informations ne sont pas revérfiées avant d'être remontées + au Cnous, mais si l'étudiant est déjà connu du Cnous, c'est + l'identité vérifiée du Cnous qui sera retenue." + properties: + nom: + title: Nom de naissance + type: string + description: Nom de naissance de l'étudiant boursier. + example: Moustaki + prenoms: + type: array + minItems: 1 + items: + type: string + example: + - PIERRE + - RICHARD + date_naissance: + title: Date de naissance + type: string + format: date + description: Date de naissance de l'étudiant boursier. + example: '1992-11-29' + nom_commune_naissance: + title: Commune de naissance + type: string + description: Libellé de la commune de naissance de l'étudiant + boursier. + example: Poitiers + sexe: + title: Sexe + type: string + description: Sexe de l'étudiant boursier. + example: M + enum: + - M + - F + required: + - nom + - prenoms + - date_naissance + - nom_commune_naissance + - sexe + required: + - est_boursier + - periode_versement_bourse + - etablissement_etudes + - echelon_bourse + - email + - identite + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_26003: + value: + errors: + - code: '26003' + title: Entité non trouvée + detail: Aucun étudiant boursier n'a pu être trouvé avec les + critères de recherche fournis. + source: + meta: + provider: CNOUS + summary: Entité non trouvée + description: Aucun étudiant boursier n'a pu être trouvé avec les + critères de recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '26999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNOUS + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '26002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNOUS + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '26001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNOUS + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '26004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNOUS + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/cnous/etudiant_boursier/france_connect": + get: + summary: Status étudiant boursier + tags: + - Statut étudiant boursier + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: Statut et échelon boursier d'un étudiant, délivrés par le Cnous. + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_cnous_etudiant_boursier_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_boursier: + title: Statut boursier + type: boolean + description: Indique si l'étudiant est boursier + example: true + periode_versement_bourse: + title: Période de versement de la bourse + description: Informations relatives à la période de versement + de la bourse de l'étudiant. + type: object + properties: + date_rentree: + title: Date de rentrée + type: string + format: date + description: Date de rentrée scolaire ou universitaire + de l'étudiant, correspondant au début de la période + de versement de la bourse. + example: '2019-09-01' + duree: + title: Durée de versement + type: number + description: Nombre de mois de versement de la bourse + à l'étudiant. + example: 12 + required: + - date_rentree + - duree + etablissement_etudes: + title: Établissement d'études de l'étudiant + description: Contient le détail des informations concernant + l'établissement dans lequel l'étudiant fait ses études + type: object + properties: + nom_commune: + title: Ville d'études + type: string + description: Libellé de la ville d'études de l'étudiant + example: Brest + nom_etablissement: + title: Établissement d'études + type: string + description: L'établissement d'études de l'étudiant + example: Carnot + required: + - nom_commune + - nom_etablissement + echelon_bourse: + title: Échelon de la bourse + description: Informations relatives à l'échelon de la bourse + type: object + properties: + echelon: + title: Échelon de la bourse + type: string + description: "Ce champ indique l'échelon de la bourse + de l'étudiant. Il existe 8 échelons de bourse, de 0bis + à 7, correspondant aux montants reçus par l'étudiant + pour l'année scolaire. \n\n Pour en savoir plus, consulter + la FAQ : https://particulier.api.gouv.fr/catalogue/cnous/statut_etudiant_boursier#faq_entry_answer_0_api_particulier_endpoint_cnous_statut_etudiant_boursier." + example: '6' + enum: + - 0bis + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + echelon_bourse_regionale_provisoire: + title: Statut provisoire de l'échelon (bourses régionales + uniquement) + description: Ce champs indique que l'échelon de la bourse + est provisoire. Ce statut provisoire de l'échelon n'est + effectif que pour les boursiers bénéficiaires d'une + bourse régionale. + type: boolean + example: true + enum: + - true + - false + required: + - echelon + - echelon_bourse_regionale_provisoire + email: + title: E-mail + type: string + description: Adresse e-mail de l'étudiant boursier. + example: georges@moustaki.fr + required: + - est_boursier + - periode_versement_bourse + - etablissement_etudes + - echelon_bourse + - email + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_26003: + value: + errors: + - code: '26003' + title: Entité non trouvée + detail: Aucun étudiant boursier n'a pu être trouvé. + source: + meta: + provider: CNOUS + summary: Entité non trouvée + description: Aucun étudiant boursier n'a pu être trouvé. + schema: + "$ref": "#/components/schemas/Error" + "/v3/cnous/etudiant_boursier/ine": + get: + summary: Status étudiant boursier + tags: + - Statut étudiant boursier + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: ine + in: query + description: Identifiant National Étudiant (INE). Cet identifiant est unique + à chaque étudiant sur le territoire français. Il est composé de 11 caractères, + 10 chiffres et 1 lettre, et depuis la rentrée 2018, 9 chiffres et 2 lettres. + Les étudiants peuvent retrouver leur numéro INE sur leur carte étudiant + et leur certificat de scolarité. + example: 1234567890G + schema: + type: string + pattern: "^[0-9a-zA-Z]{11}$" + required: true + security: + - jwt_bearer_token: [] + description: Statut et échelon boursier d'un étudiant, délivrés par le Cnous. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_cnous_etudiant_boursier_with_ine + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + est_boursier: + title: Statut boursier + type: boolean + description: Indique si l'étudiant est boursier + example: true + periode_versement_bourse: + title: Période de versement de la bourse + description: Informations relatives à la période de versement + de la bourse de l'étudiant. + type: object + properties: + date_rentree: + title: Date de rentrée + type: string + format: date + description: Date de rentrée scolaire ou universitaire + de l'étudiant, correspondant au début de la période + de versement de la bourse. + example: '2019-09-01' + duree: + title: Durée de versement + type: number + description: Nombre de mois de versement de la bourse + à l'étudiant. + example: 12 + required: + - date_rentree + - duree + etablissement_etudes: + title: Établissement d'études de l'étudiant + description: Contient le détail des informations concernant + l'établissement dans lequel l'étudiant fait ses études + type: object + properties: + nom_commune: + title: Ville d'études + type: string + description: Libellé de la ville d'études de l'étudiant + example: Brest + nom_etablissement: + title: Établissement d'études + type: string + description: L'établissement d'études de l'étudiant + example: Carnot + required: + - nom_commune + - nom_etablissement + echelon_bourse: + title: Échelon de la bourse + description: Informations relatives à l'échelon de la bourse + type: object + properties: + echelon: + title: Échelon de la bourse + type: string + description: "Ce champ indique l'échelon de la bourse + de l'étudiant. Il existe 8 échelons de bourse, de 0bis + à 7, correspondant aux montants reçus par l'étudiant + pour l'année scolaire. \n\n Pour en savoir plus, consulter + la FAQ : https://particulier.api.gouv.fr/catalogue/cnous/statut_etudiant_boursier#faq_entry_answer_0_api_particulier_endpoint_cnous_statut_etudiant_boursier." + example: '6' + enum: + - 0bis + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + echelon_bourse_regionale_provisoire: + title: Statut provisoire de l'échelon (bourses régionales + uniquement) + description: Ce champs indique que l'échelon de la bourse + est provisoire. Ce statut provisoire de l'échelon n'est + effectif que pour les boursiers bénéficiaires d'une + bourse régionale. + type: boolean + example: true + enum: + - true + - false + required: + - echelon + - echelon_bourse_regionale_provisoire + email: + title: E-mail + type: string + description: Adresse e-mail de l'étudiant boursier. + example: georges@moustaki.fr + identite: + title: Données d'identité + type: object + description: "Données d'identité de l'étudiant boursier. Ces + informations d'identité sont saisies manuellement par les + étudiants. \n\n - Dans le cas des étudiants avec bourse + nationale, les informations sont vérifiées par un agent + via la pièce d'identité fournie (sauf le lieu de naissance) + ; \n\n - Dans le cas des étudiants avec bourse régionale, + les informations ne sont pas revérfiées avant d'être remontées + au Cnous, mais si l'étudiant est déjà connu du Cnous, c'est + l'identité vérifiée du Cnous qui sera retenue." + properties: + nom: + title: Nom de naissance + type: string + description: Nom de naissance de l'étudiant boursier. + example: Moustaki + prenoms: + type: array + minItems: 1 + items: + type: string + example: + - PIERRE + - RICHARD + date_naissance: + title: Date de naissance + type: string + format: date + description: Date de naissance de l'étudiant boursier. + example: '1992-11-29' + nom_commune_naissance: + title: Commune de naissance + type: string + description: Libellé de la commune de naissance de l'étudiant + boursier. + example: Poitiers + sexe: + title: Sexe + type: string + description: Sexe de l'étudiant boursier. + example: M + enum: + - M + - F + required: + - nom + - prenoms + - date_naissance + - nom_commune_naissance + - sexe + required: + - est_boursier + - periode_versement_bourse + - etablissement_etudes + - echelon_bourse + - email + - identite + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_26003: + value: + errors: + - code: '26003' + title: Entité non trouvée + detail: Aucun étudiant boursier n'a pu être trouvé avec les + critères de recherche fournis. Veuillez vérifier que l'identifiant + correspond au périmètre couvert par l'API. + source: + meta: + provider: CNOUS + summary: Entité non trouvée + description: Aucun étudiant boursier n'a pu être trouvé avec les + critères de recherche fournis. Veuillez vérifier que l'identifiant + correspond au périmètre couvert par l'API. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '26999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: CNOUS + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '26002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: CNOUS + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '26001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: CNOUS + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '26004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: CNOUS + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/france_travail/indemnites/identifiant": + get: + summary: Paiements versés par France Travail + tags: + - Paiements versés par France Travail + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: identifiant + in: query + description: Identifiant France Travail choisi par le particulier lors de + la création de son espace personnel en ligne. + example: jean.dupont33 + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: Ensemble des paiements versés par France Travail au particulier + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Indemnites trouvées + x-operationId: api_particulier_v3_france_travail_indemnites_with_identifiant + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + identifiant: + title: Nom d'utilisateur France Travail + type: string + description: Identifiant France Travail, tel qu'il a été renseigné + en paramètre d'appel. Cet identifiant est le nom d'utilisateur + tel que choisi par le particulier lors de la création de + son espace personnel en ligne. + example: jean.dupont33 + paiements: + title: Liste des paiements versés + description: Liste des paiements versés par FranceTravail + au particulier. + type: array + minItems: 1 + items: + title: Paiement + type: object + properties: + date_versement: + title: Date du paiement + type: string + example: '2021-01-01' + montant_total: + title: Montant total versé + description: Montant total du paiement. Il s'agit de + la somme des allocations, aides et autres paiements, + moins le prélèvement de l'impôt à la source. + type: number + example: 123.4 + montant_allocations: + title: Montant d'allocations + description: Montant du paiement, avant prélèvement + de l'impôt à la source, correspondant aux allocations + (allocation d'aide au retour à l'emploi, allocation + de sécurisation professionnelle, allocation de solidarité + spécifique, allocation pour les travailleurs indépendants, + Rémunération de formation France Travail, Rémunération + de fin de formation, allocation de fin de droit, allocation + d'accompagnement personnalisé, allocation de professionnalisation + et de solidarité, allocation décès, allocation contrat + engagement jeune). + type: number + example: 45.1 + montant_aides: + title: Montant d'aides + description: Montant du paiement, avant prélèvement + de l'impôt à la source, correspondant aux aides (aide + à la reprise et à la création d’entreprise, aide à + la mobilité, aide à la garde d'enfant pour parent + isolé, aide fin de droit, aide aux congés non payés, + aide à la valorisation des acquis par l'expérience, + aide du fond de sécurisation du secteur automobile, + aide ponctuelle jeune, aide régionale, aide aux demandeurs + d'emploi longue durée, aide exceptionnelle de solidarité, + Prime de reclassement). + type: number + example: 12.21 + montant_autres: + title: Montant des autres paiements + description: Montant du paiement, avant prélèvement + de l'impôt à la source, correspondant aux autres paiements + (prime de Noël, indemnité différentielle de reclassement, + acompte, avance, reversement). + type: number + example: 2.34 + required: + - identifiant + - paiements + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Non trouvée + content: + application/json: + examples: + entite_non_trouvee_24003: + value: + errors: + - code: '24003' + title: Entité non trouvée + detail: Aucune situation France Travail n'a pu être trouvée + avec les critères de recherche fournis. + source: + meta: + provider: France Travail + summary: Entité non trouvée + description: Aucune situation France Travail n'a pu être trouvée + avec les critères de recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '24999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: France Travail + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '24002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: France Travail + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '24001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: France Travail + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '24004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: France Travail + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/france_travail/statut/identifiant": + get: + summary: Statut demandeur d'emploi + tags: + - Statut demandeurs d'emploi + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: identifiant + in: query + description: Identifiant France Travail choisi par le particulier lors de + la création de son espace personnel en ligne. + example: jean.dupont33 + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: | + Statut demandeur d'emploi, données relatives à l'inscription FranceTravail, ainsi que données d'identité de contact. + **Paramètres d'appel :** Nom d’utilisateur France Travail choisi par le particulier lors de la création de son espace personnel en ligne + **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/api_particulier_v2_pole_emploi_statut) + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Statut trouvé + x-operationId: api_particulier_v3_france_travail_statut_with_identifiant + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + identifiant: + title: Nom d'utilisateur France Travail + type: string + description: | + Identifiant France Travail, tel qu'il a été renseigné + en paramètre d'appel. Cet identifiant est le nom d'utilisateur + tel que choisi par le particulier lors de la création de son + espace personnel en ligne. + example: martin.jacques + identite: + title: Identité + description: Donnée d'identité de l'utilisateur France Travail + type: object + properties: + civilite: + title: Civilité + description: Civilité du demandeur d'emploi, Madame ou + Monsieur. + type: string + example: M. + enum: + - MME + - M. + nom_naissance: + title: Nom de naissance + type: string + description: Nom de naissance du demandeur d'emploi. + example: MARTIN + nom_usage: + title: Nom d'usage + type: string + description: Nom d'usage du demandeur d'emploi. + nullable: true + example: + prenom: + title: Prénom + type: string + example: JACQUES + description: Prénom ddu demandeur d'emploi, limité à 13 + caractères + sexe: + title: Sexe + type: string + description: Sexe du demandeur d'emploi. + example: Masculin + date_naissance: + title: Date de naissance + format: date + type: string + description: Date de naissance du demandeur d'emploi au + format YYYY-MM-DD. + example: '1995-02-02' + required: + - civilite + - nom_naissance + - nom_usage + - prenom + - sexe + - date_naissance + contact: + title: Contact + description: Données de contact de l'utilisateur France Travail. + type: object + properties: + telephone: + title: Téléphone principal + type: string + description: Numéro de téléphone principal du demandeur + d'emploi. + example: '0636676767' + telephone2: + title: Téléphone secondaire + type: string + description: Numéro de téléphone secondaire du demandeur + d'emploi. + nullable: true + example: '1122334455' + email: + title: E-mail + type: string + nullable: true + description: Adresse e-mail du demandeur d'emploi. + example: martin.jacques@france.fr + required: + - telephone + - telephone2 + - email + adresse: + title: Adresse + type: object + description: Adresse du demandeur d'emploi, déclarée par le + particulier lors de son inscription à France Travail ou + suite à une déclaration de changement d’adresse. + properties: + code_postal: + type: string + title: Code postal + example: '75001' + code_cog_insee_commune: + title: Code COG Insee de la commune + type: string + example: '75101' + localite: + title: Localité (Code postal et nom de la commune) + type: string + example: 75001 Paris + ligne_voie: + title: Voie + type: string + example: 21 RUE DES MARMOTS + ligne_complement_destinataire: + title: Complément destinataire + type: string + nullable: true + example: Appartement 42 + ligne_complement_adresse: + title: Complément d'adresse + type: string + nullable: true + example: + ligne_complement_distribution: + title: Complément distribution + type: string + nullable: true + ligne_nom: + title: Nom du destinataire + type: string + example: MARTIN + required: + - code_postal + - code_cog_insee_commune + - localite + - ligne_voie + - ligne_complement_destinataire + - ligne_complement_adresse + - ligne_complement_distribution + - ligne_nom + inscription: + title: Inscription FranceTravail + description: Données relatives à l'inscription de l'utilisateur + à France Travail. + type: object + properties: + date_debut: + title: Date d'inscription + format: date + type: string + description: Date d'inscription à France Travail au format + YYYY-MM-DD. + example: '2021-01-07' + date_fin: + title: Date de cessation d'inscription + description: Date de cessation d'inscription à France + Travail au format YYYY-MM-DD. + type: string + format: date + nullable: true + example: '2023-03-12' + categorie: + title: Catégorie d'inscription + description: "Catégorie de l'inscription de l'utilisateur + à France Travail. La liste des catégories possibles + est la suivante : \n - 1 : PERSONNE SANS EMPLOI DISPONIBLE + DUREE INDETERMINEE PLEIN TPS\n - 2 : PERSONNE SANS + EMPLOI DISPONIBLE DUREE INDETERMINEE PARTIEL\n - 3 + : PERSONNE SANS EMPLOI DISPONIBLE DUREE DETERMINEE OU + SAISON\n - 4 : PERSONNE SANS EMPLOI NON DISPONIBLE + IMMEDIATEMENT\n - 5 : PERSONNE POURVUE D'UN EMPLOI + A LA RECHERCHE D'UN AUTRE\n" + type: object + properties: + code: + title: Code + description: 'Code de la catégorie d''inscription + du particulier à France Travail. + + ' + type: integer + example: 1 + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + libelle: + title: Libellé + description: Libellé de la catégorie d'inscription + du particulier à France Travail. + type: string + example: PERSONNE SANS EMPLOI DISPONIBLE DUREE INDETERMINEE + PLEIN TPS + enum: + - PERSONNE SANS EMPLOI DISPONIBLE DUREE INDETERMINEE + PLEIN TPS + - PERSONNE SANS EMPLOI DISPONIBLE DUREE INDETERMINEE + PARTIEL + - PERSONNE SANS EMPLOI DISPONIBLE DUREE DETERMINEE + OU SAISON + - PERSONNE SANS EMPLOI NON DISPONIBLE IMMEDIATEMENT + - PERSONNE POURVUE D'UN EMPLOI A LA RECHERCHE D'UN + AUTRE + required: + - code + - libelle + code_certification_cnav: + title: Code du statut de certification d'identité CNAV + type: string + description: | + France Travail dépend d'un flux de certification d'identité émis par la CNAV, un particulier peut avoir été + certifié ou non. La signification des codes est la suivante : + - VC IDENTITE CERTIFIEE + - IC : IDENTITE ASSIMILEE CERTIFIEE + - PC : IDENTITE CERTIFIEE PARTIELLEMENT + Sont considérés comme non-certifiés : + - AC : ATTENTE TRAITEMENT RETOUR CNAV + - DC : DEMANDE CERTIF. ENVOYEE + - EC : ECHEC DE CERTIFICATION CNAV + - RC : REFUS PROPOSITION DE CERTIFICATION + - null : IDENTITE NON CERTIFIEE + example: VC + enum: + - VC + - IC + - PC + - AC + - DC + - RC + - + required: + - date_debut + - date_fin + - categorie + - code_certification_cnav + required: + - identifiant + - identite + - contact + - adresse + - inscription + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Non trouvée + content: + application/json: + examples: + entite_non_trouvee_24003: + value: + errors: + - code: '24003' + title: Entité non trouvée + detail: Aucune situation France Travail n'a pu être trouvée + avec les critères de recherche fournis. + source: + meta: + provider: France Travail + summary: Entité non trouvée + description: Aucune situation France Travail n'a pu être trouvée + avec les critères de recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '24999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: France Travail + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '24002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: France Travail + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '24001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: France Travail + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '24004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: France Travail + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/men/scolarites/identite": + get: + summary: Statut élève scolarisé et boursier + tags: + - Statut élève scolarisé et boursier + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nFournir plusieurs prénoms maximise + les chances que l'API retrouve le particulier car cela permet de limiter + le risque d’homonymie." + required: true + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: true + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**." + example: 1 + required: true + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**." + example: 1 + required: true + schema: + type: integer + - name: codeEtablissement + in: query + description: | + Code d'unité administrative immatriculée (code UAI) de l'établissement où est scolarisé l'élève. Ce code unique inscrit au répertoire national des établissements est composé de 7 chiffres et d'une lettre ; les trois premiers chiffres correspondent au numéro de département de l'établissement. + + Pour retrouver facilement le code UAI d'un établissement à partir d'informations plus facilement connues des usagers (commune, code postal, etc.), vous pouvez utiliser l'[API "Annuaire de l'éducation nationale"](https://api.gouv.fr/les-api/api-annuaire-education). + + ⚠️ L'établissement 0861288H (CNED Direction générale) n'existe pas dans l'API annuaire de l'éducation nationale, il faudra donc compléter la liste des établissements avec une ligne CNED à laquelle sera associée le code UAI qui sera en passé en entrée. + example: 0210015C + required: true + schema: + type: string + - name: anneeScolaire + in: query + description: 'Année scolaire recherchée au format AAAA-AAAA ou AAAA. Les informations + connues par l''API concerne surtout l''année en cours et parfois l''année + scolaire à venir. Pour en savoir plus consulter la fiche métier : https://particulier.api.gouv.fr/catalogue/education_nationale/statut_eleve_scolarise#faq_entry_answer_0_api_particulier_endpoint_education_nationale_statut_eleve_scolarise.' + example: 2022-2023 + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: Statut scolarisé et statut boursier d'un élève du primaire, collège + ou lycée. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Scolarité trouvée + x-operationId: api_particulier_v3_men_scolarites_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + identite: + title: Données d'identité de l'élève passées en paramètres + d'appel + description: Les informations d'identité retournées ici sont + issues de la base de données des établissemets scolaires + où les élèves sont inscrits et proviennent des pièces d'identité + que les parents doivent fournir pour inscrire leur enfant. + type: object + properties: + nom: + title: Nom + description: Nom de l'élève. + type: string + example: Martin + prenom: + title: Prénom + description: Prénom de l'élève. + type: string + example: Justine + sexe: + title: Sexe + description: Sexe de l'élève, masculin ou féminin. + type: string + example: F + enum: + - M + - F + date_naissance: + title: Date de naissance + description: Date de naissance de l'élève au format AAAA-MM-JJ + type: string + example: '2000-01-20' + required: + - nom + - prenom + - sexe + - date_naissance + annee_scolaire: + title: Année scolaire + description: Année scolaire de l'élève au format AAAA-AAAA. + type: string + pattern: "^\\d{4}$|^\\d{4}-\\d{4}$" + example: 2022-2023 + est_scolarise: + title: Statut scolarisé + description: Indique si l'élève est scolarisé dans un établissement. + type: boolean + example: true + statut_eleve: + title: Statut de l'élève + description: | + Indique le statut sous lequel l'élève est scolarisé dans l'établissement. Les valeurs sont susceptibles d'évoluer : + + - ST : Scolaire, il s'agit du statut de base renvoyé pour près de 95% des élèves. + - AP : Apprenti + - CQ : Contrat de qualification + - FC : Formation continue + - ED : Enseignement à distance + - IN : Candidat individuel + - FQ : Stagiaire de la formation Professionnelle + - SC : Scolaire ou formation initiale + - CP : Contrat de professionnalisation. + - NC : Non connu ou non communiqué. + type: object + properties: + code: + title: Code + description: Code du statut sous lequel l'élève est scolarisé + dans l'établissement. + type: string + example: ST + libelle: + title: Libellé + description: Libellé du statut sous lequel l'élève est + scolarisé dans l'établissement. + type: string + example: SCOLAIRE + required: + - code + - libelle + est_boursier: + title: Statut boursier + description: | + Indique si l'élève est boursier dans un établissement. Seuls les collègiens et lycéens peuvent être boursiers. + + ⚠️ Si le statut boursier est à "false" avant mi-octobre, cela ne signifie pas forcément que l'élève n'est pas boursier. Il peut s'agir d'un faux négatif lié à une absence de l'information en base. Pour en savoir plus consulter la fiche métier : https://particulier.api.gouv.fr/catalogue/education_nationale/statut_eleve_scolarise#faq_entry_answer_1_api_particulier_endpoint_education_nationale_statut_eleve_scolarise. + + Ce champs est à null lorsque l'on ne sait pas si l'élève est boursier ou non. + type: boolean + example: true + nullable: true + echelon_bourse: + title: Échelon de la bourse + description: | + Ce champ indique l'échelon de la bourse de l'élève. + + Il existe trois échelons de bourses pour les collégiens (1 à 3) et six échelons pour les lycéens (1 à 6), correspondant aux montants reçus par l'élève pour l'année scolaire. Pour en savoir plus, consulter la FAQ : https://particulier.api.gouv.fr/catalogue/education_nationale/statut_eleve_scolarise#faq_entry_answer_2_api_particulier_endpoint_education_nationale_statut_eleve_scolarise. + + Ce champ est à "null" quand "est_boursier" est "false"." + type: integer + example: 1 + nullable: true + enum: + - + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + code_etablissement: + title: Code UAI de l'établissement + description: | + Code d'unité administrative immatriculée (code UAI) de l'établissement où est scolarisé l'élève. Ce code unique inscrit au répertoire national des établissements est composé de 7 chiffres et d'une lettre ; les trois premiers chiffres correspondent au numéro de département de l'établissement. + + Pour retrouver le nom de l'établissement, vous pouvez utiliser l'[API "Annuaire de l'éducation nationale"](https://api.gouv.fr/les-api/api-annuaire-education) ou le site https://annuaire-education.fr. + type: string + pattern: "^\\d{7}\\w$" + example: 0210015C + required: + - identite + - annee_scolaire + - est_scolarise + - statut_eleve + - est_boursier + - echelon_bourse + - code_etablissement + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Non trouvée + content: + application/json: + examples: + entite_non_trouvee_30003: + value: + errors: + - code: '30003' + title: Entité non trouvée + detail: Aucun élève n'a pu être trouvé avec les critères de + recherche fournis. + source: + meta: + provider: MEN + summary: Entité non trouvée + description: Aucun élève n'a pu être trouvé avec les critères de + recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '30999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: MEN + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '30002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: MEN + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '30001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: MEN + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '30004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: MEN + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/mesri/statut_etudiant/identite": + get: + summary: Statut étudiant + tags: + - Statut étudiant + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: nomNaissance + in: query + description: "**Nom de naissance, également appelé nom de famille**. \n\nLe + nom de naissance est indiqué sur l'acte de naissance, de mariage, sur le + livret de famille, etc. Le nom de famille/naissance figure toujours sur + la pièce d'identité en premier, avant le nom d'usage si le particulier en + a un. \n\nEn cas de changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance. Pour appeler + l'API, le nom de naissance/famille nécessaire est bien le nom de famille + modifié." + example: DURANT + required: true + schema: + type: string + - name: prenoms[] + in: query + schema: + type: array + minItems: 1 + maxItems: 1 + items: + type: string + example: + - PIERRE + - RICHARD + description: "**Liste des prénoms**. \n\nDans le cadre de cette API, il n'est + possible de fournir qu'un seul prenom." + required: true + - name: anneeDateNaissance + in: query + description: "**Année de naissance**. \n\nPour un particulier né en France, + dans le cadre d'un appel à l'API avec l'utilisation du paramètre 'nomCommuneNaissance', + ce paramètre est obligatoire (ainsi que le paramètre 'codeCogInseeDepartementNaissance') + afin de retrouver le code COG de la commune de naissance." + example: 1990 + required: true + schema: + type: integer + - name: moisDateNaissance + in: query + description: "**Mois de naissance**." + example: 1 + required: true + schema: + type: integer + - name: jourDateNaissance + in: query + description: "**Jour de naissance**." + example: 1 + required: true + schema: + type: integer + - name: sexeEtatCivil + in: query + schema: + type: string + enum: + - M + - F + description: "**Sexe de la personne tel qu'indiqué sur les actes d'état civil**, + comme par exemple l'acte de naissance ou de mariage. \n\nDans la majorité + des cas, il s'agit également de la mention indiquée sur la pièce d'identité + et le passeport. Cette mention peut être masculin ('M') ou féminin ('F'). + \nDans le cas d'un particulier ayant demandé une modification de sa mention + de sexe à l'état civil, le changement est indiqué en marge de l'acte de + naissance une fois la décision rendue. Le changement intervient sur les + titres d'identité seulement si le particulier en demande le renouvellement." + example: M + required: true + - name: codeCogInseeCommuneNaissance + in: query + schema: + type: string + minLength: 5 + maxLength: 5 + example: '08480' + description: "**Code Insee à 5 chiffres de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation de la seconde option + (triplet 'nomCommuneNaissance', 'anneeDateNaissance', 'codeInseeDepartementNaissance').\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: "**Nom en toute lettre de la commune de naissance**. \n\nPour + retrouver un particulier né en France, il est nécessaire d'indiquer sa commune + de naissance. Ce paramètre est une des deux options disponibles pour renseigner + la commune de naissance. En l'absence de l'utilisation du 'codeCogInseeCommuneNaissance', + ce paramètre est obligatoire si la personne est née en France ; il doit + être obligatoirement accompagné des paramètres 'codeCogInseeDepartementNaissance' + et 'anneeDateNaissance'.\n\nNe pas remplir si la personne est née à l'étranger." + required: false + - name: codeCogInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: "**Code INSEE du département de naissance**. \n\nPour retrouver + un particulier né en France, il est nécessaire d'indiquer sa commune de + naissance. Ce paramètre fait partie d'une des deux options disponibles pour + renseigner la commune de naissance. Lorsque le paramètre 'nomCommuneNaissance' + est utilisé, ce paramètre est obligatoire si la personne est née en France + et permet de retrouver le code COG avec le paramètre 'anneeDateNaissance'.\n\nNe + pas remplir si la personne est née à l'étranger." + required: false + security: + - jwt_bearer_token: [] + description: Admissions et inscriptions d'un étudiant aux établissements d'enseignement + supérieur. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_mesri_statut_etudiant_with_civility + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + admissions: + title: Admissions de l'étudiant dans un ou plusieurs établissements + description: "Liste des admissions de l'étudiant dans un ou + plusieurs établissements d'enseignement supérieur pour l'année + en cours. \n\nChaque objet listé correspond à un établissement + dans lequel l'étudiant est au minimum admis. C'est-à-dire + que l'étudiant est au minimum pré-inscrit dans l'établissement.\n\nSi + l'étudiant est inscrit dans l'établissement (procédure complète + et règlement des droits d'inscription terminés), la clé + est_inscrit sera alors à true pour l'objet concerné.\n" + type: array + items: + type: object + properties: + date_debut: + title: Date de début de période d'études + type: string + format: date + description: Date de début de la période d'études dans + l'établissement. + example: '2022-09-01' + date_fin: + title: Date de fin de période d'études + type: string + format: date + description: Date de fin de la période d'étude dans + l'établissement. + example: '2023-08-31' + est_inscrit: + title: Statut étudiant inscrit + type: boolean + example: true + enum: + - true + - false + description: | + Indique que l'étudiant est inscrit dans l'établissement. + + Si le champ est à false, c'est que l'étudiant n'est pas inscrit, mais seulement admis dans l'établissement. C'est-à-dire que l'étudiant est pré-inscrit dans l'établissement mais que la procédure complète d'inscription et le règlement des droits d'inscription ne sont pas terminés. Les étudiants admis deviennent inscrits, une fois leurs droits d'inscription régularisés (paiement des droits, premier versement des droits ou acquittement des droits selon la situation de l'étudiant et les règles de l'établissement.). Tous les étudiants admis ne seront pas forcément de futurs étudiants inscrits dans l'établissement. + regime_formation: + title: Régime de formation + description: "Régime de formation de l'étudiant. La + liste des régimes possibles est la suivante : \n - + RF1 : formation initiale\n - RF2 : formation initiale + hors apprentissage\n - RF3 : reprise d'études non + financée sans convention\n - RF4 : contrat d'apprentissage\n + \ - RF5 : formation continue\n - RF6 : formation + continue hors contrat professionnel\n - RF7 : contrat + de professionnalisation\n" + type: object + properties: + libelle: + title: Libellé + type: string + description: 'Libellé de la formation de l''étudiant. + + ' + example: formation initiale + enum: + - formation initiale + - formation initiale hors apprentissage + - reprise d'études non financée sans convention + - contrat d'apprentissage + - formation continue + - formation continue hors contrat professionnel + - contrat de professionnalisation + code: + title: Code + type: string + description: 'Code de la formation correspondant + au régime. C''est un code technique pour exploiter + différents mécanismes indépendament du label du + régime. + + ' + example: RF1 + enum: + - RF1 + - RF2 + - RF3 + - RF4 + - RF5 + - RF6 + - RF7 + code_cog_insee_commune: + title: Commune de l'établissement d'études + type: string + description: Code Insee à 5 chiffres de la commune de + l'établissement d'études de l'étudiant. + example: '29085' + etablissement_etudes: + title: Établissement d'études + description: "Code UAI et libellé de l'établissement + d'enseignement supérieur dans lequel l'étudiant est + admis. \n\nPour retrouver d'autres informations sur + l'établissement, vous pouvez utiliser l'[API \"Annuaire + de l'éducation nationale\"](https://api.gouv.fr/les-api/api-annuaire-education) + ou le site https://annuaire-education.fr.\n" + type: object + properties: + uai: + title: Code UAI + type: string + description: 'Code d''unité administrative immatriculée + (code UAI) de l''établissement où est scolarisé + l''élève. Ce code unique inscrit au répertoire + national des établissements est composé de 7 chiffres + et d''une lettre ; les trois premiers chiffres + correspondent au numéro de département de l''établissement. + + ' + pattern: "^\\d{7}\\w$" + example: 0011402U + nom: + title: Appelation officielle + type: string + description: Appelation officielle de l'établissement + associée au code UAI. + example: EGC AIN BOURG EN BRESSE EC GESTION ET COMMERCE + (01000) + identite: + title: Données d'identité de l'étudiant + description: Données d'identité de l'étudiant corrigées et + certifiées via l'API Ines qui croise l'état civil et le + numéro INE de l'étudiant. + type: object + properties: + nom_naissance: + title: Nom de naissance + type: string + description: "Nom de naissance de l'étudiant. Il s'agit + du nom de famille tel qu'indiqué sur l'acte de naissance, + de mariage, sur le livret de famille, etc. Ce nom figure + toujours sur la pièce d'identité en premier, avant le + nom d'usage si le particulier en a un. \n\nEn cas de + changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance.\n" + example: Moustaki + prenom: + title: Prénom + type: string + description: Prénom de l'étudiant. + example: Georges + date_naissance: + title: Date de naissance + type: string + format: date + description: Date de naissance de l'étudiant. + example: '1992-11-29' + required: + - nom_naissance + - prenom + - date_naissance + required: + - admissions + - identite + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_25003: + value: + errors: + - code: '25003' + title: Entité non trouvée + detail: Aucun étudiant n'a pu être trouvé avec les critères + de recherche fournis. + source: + meta: + provider: MESRI + summary: Entité non trouvée + description: Aucun étudiant n'a pu être trouvé avec les critères + de recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '25999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: MESRI + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '25002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: MESRI + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '25001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: MESRI + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '25004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: MESRI + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" + "/v3/mesri/statut_etudiant/france_connect": + get: + summary: Statut étudiant + tags: + - Statut étudiant + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + security: + - jwt_bearer_token: [] + description: Admissions et inscriptions d'un étudiant aux établissements d'enseignement + supérieur. + responses: + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_mesri_statut_etudiant_with_france_connect + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + admissions: + title: Admissions de l'étudiant dans un ou plusieurs établissements + description: "Liste des admissions de l'étudiant dans un ou + plusieurs établissements d'enseignement supérieur pour l'année + en cours. \n\nChaque objet listé correspond à un établissement + dans lequel l'étudiant est au minimum admis. C'est-à-dire + que l'étudiant est au minimum pré-inscrit dans l'établissement.\n\nSi + l'étudiant est inscrit dans l'établissement (procédure complète + et règlement des droits d'inscription terminés), la clé + est_inscrit sera alors à true pour l'objet concerné.\n" + type: array + items: + type: object + properties: + date_debut: + title: Date de début de période d'études + type: string + format: date + description: Date de début de la période d'études dans + l'établissement. + example: '2022-09-01' + date_fin: + title: Date de fin de période d'études + type: string + format: date + description: Date de fin de la période d'étude dans + l'établissement. + example: '2023-08-31' + est_inscrit: + title: Statut étudiant inscrit + type: boolean + example: true + enum: + - true + - false + description: | + Indique que l'étudiant est inscrit dans l'établissement. + + Si le champ est à false, c'est que l'étudiant n'est pas inscrit, mais seulement admis dans l'établissement. C'est-à-dire que l'étudiant est pré-inscrit dans l'établissement mais que la procédure complète d'inscription et le règlement des droits d'inscription ne sont pas terminés. Les étudiants admis deviennent inscrits, une fois leurs droits d'inscription régularisés (paiement des droits, premier versement des droits ou acquittement des droits selon la situation de l'étudiant et les règles de l'établissement.). Tous les étudiants admis ne seront pas forcément de futurs étudiants inscrits dans l'établissement. + regime_formation: + title: Régime de formation + description: "Régime de formation de l'étudiant. La + liste des régimes possibles est la suivante : \n - + RF1 : formation initiale\n - RF2 : formation initiale + hors apprentissage\n - RF3 : reprise d'études non + financée sans convention\n - RF4 : contrat d'apprentissage\n + \ - RF5 : formation continue\n - RF6 : formation + continue hors contrat professionnel\n - RF7 : contrat + de professionnalisation\n" + type: object + properties: + libelle: + title: Libellé + type: string + description: 'Libellé de la formation de l''étudiant. + + ' + example: formation initiale + enum: + - formation initiale + - formation initiale hors apprentissage + - reprise d'études non financée sans convention + - contrat d'apprentissage + - formation continue + - formation continue hors contrat professionnel + - contrat de professionnalisation + code: + title: Code + type: string + description: 'Code de la formation correspondant + au régime. C''est un code technique pour exploiter + différents mécanismes indépendament du label du + régime. + + ' + example: RF1 + enum: + - RF1 + - RF2 + - RF3 + - RF4 + - RF5 + - RF6 + - RF7 + code_cog_insee_commune: + title: Commune de l'établissement d'études + type: string + description: Code Insee à 5 chiffres de la commune de + l'établissement d'études de l'étudiant. + example: '29085' + etablissement_etudes: + title: Établissement d'études + description: "Code UAI et libellé de l'établissement + d'enseignement supérieur dans lequel l'étudiant est + admis. \n\nPour retrouver d'autres informations sur + l'établissement, vous pouvez utiliser l'[API \"Annuaire + de l'éducation nationale\"](https://api.gouv.fr/les-api/api-annuaire-education) + ou le site https://annuaire-education.fr.\n" + type: object + properties: + uai: + title: Code UAI + type: string + description: 'Code d''unité administrative immatriculée + (code UAI) de l''établissement où est scolarisé + l''élève. Ce code unique inscrit au répertoire + national des établissements est composé de 7 chiffres + et d''une lettre ; les trois premiers chiffres + correspondent au numéro de département de l''établissement. + + ' + pattern: "^\\d{7}\\w$" + example: 0011402U + nom: + title: Appelation officielle + type: string + description: Appelation officielle de l'établissement + associée au code UAI. + example: EGC AIN BOURG EN BRESSE EC GESTION ET COMMERCE + (01000) + required: + - admissions + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_25003: + value: + errors: + - code: '25003' + title: Entité non trouvée + detail: Aucun étudiant n'a pu être trouvé. + source: + meta: + provider: MESRI + summary: Entité non trouvée + description: Aucun étudiant n'a pu être trouvé. + schema: + "$ref": "#/components/schemas/Error" + "/v3/mesri/statut_etudiant/ine": + get: + summary: Statut étudiant + tags: + - Statut étudiant + parameters: + - name: recipient + in: query + description: |- + "**Bénéficiaire de l’appel** + + SIRET de l’administration destinatrice des données." + example: '13002526500013' + required: true + schema: + type: string + - name: ine + in: query + description: Identifiant National Étudiant (INE). Cet identifiant est unique + à chaque étudiant sur le territoire français. Il est composé de 11 caractères, + 10 chiffres et 1 lettre, et depuis la rentrée 2018, 9 chiffres et 2 lettres. + Les étudiants peuvent retrouver leur numéro INE sur leur carte étudiant + et leur certificat de scolarité. + example: 1234567890G + schema: + type: string + pattern: "^[0-9a-zA-Z]{11}$" + required: true + security: + - jwt_bearer_token: [] + description: Admissions et inscriptions d'un étudiant aux établissements d'enseignement + supérieur. + responses: + '401': + description: Non autorisé + content: + application/json: + examples: + invalid_token_error: + value: + errors: + - code: '00101' + title: Interdit + detail: Votre token n'est pas valide ou n'est pas renseigné + source: + parameter: token + meta: {} + summary: Interdit + description: Votre token n'est pas valide ou n'est pas renseigné + expired_token_error: + value: + errors: + - code: '00103' + title: Jeton expiré + detail: Votre token est expiré. Vous devez refaire une demande + source: + parameter: token + meta: {} + summary: Jeton expiré + description: Votre token est expiré. Vous devez refaire une demande + blacklisted_token_error: + value: + errors: + - code: '00105' + title: Jeton sur liste noire + detail: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver + un jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + source: + parameter: token + meta: {} + summary: Jeton sur liste noire + description: 'Votre jeton est sur liste noire, celui-ci a certainement + été divulgué sur un canal non-sécurisé. Vous pouvez trouver un + jeton valide sur votre espace personnel: https://entreprise.api.gouv.fr/compte' + schema: + "$ref": "#/components/schemas/Error" + '403': + description: Accès interdit + content: + application/json: + examples: + insufficient_privileges_error: + value: + errors: + - code: '00100' + title: Privilèges insuffisants + detail: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + source: + parameter: token + meta: {} + summary: Privilèges insuffisants + description: Votre token est valide mais vos privilèges sont insuffisants. + Listez vos privilèges sur /api/introspect + schema: + "$ref": "#/components/schemas/Error" + '429': + description: Trop de requêtes + content: + application/json: + examples: + too_many_requests_error: + value: + errors: + - code: '00429' + title: Trop de requêtes + detail: Vous avez effectué trop de requêtes + source: + meta: {} + summary: Trop de requêtes + description: Vous avez effectué trop de requêtes + schema: + "$ref": "#/components/schemas/Error" + '200': + description: Étudiant identifié + x-operationId: api_particulier_v3_mesri_statut_etudiant_with_ine + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + admissions: + title: Admissions de l'étudiant dans un ou plusieurs établissements + description: "Liste des admissions de l'étudiant dans un ou + plusieurs établissements d'enseignement supérieur pour l'année + en cours. \n\nChaque objet listé correspond à un établissement + dans lequel l'étudiant est au minimum admis. C'est-à-dire + que l'étudiant est au minimum pré-inscrit dans l'établissement.\n\nSi + l'étudiant est inscrit dans l'établissement (procédure complète + et règlement des droits d'inscription terminés), la clé + est_inscrit sera alors à true pour l'objet concerné.\n" + type: array + items: + type: object + properties: + date_debut: + title: Date de début de période d'études + type: string + format: date + description: Date de début de la période d'études dans + l'établissement. + example: '2022-09-01' + date_fin: + title: Date de fin de période d'études + type: string + format: date + description: Date de fin de la période d'étude dans + l'établissement. + example: '2023-08-31' + est_inscrit: + title: Statut étudiant inscrit + type: boolean + example: true + enum: + - true + - false + description: | + Indique que l'étudiant est inscrit dans l'établissement. + + Si le champ est à false, c'est que l'étudiant n'est pas inscrit, mais seulement admis dans l'établissement. C'est-à-dire que l'étudiant est pré-inscrit dans l'établissement mais que la procédure complète d'inscription et le règlement des droits d'inscription ne sont pas terminés. Les étudiants admis deviennent inscrits, une fois leurs droits d'inscription régularisés (paiement des droits, premier versement des droits ou acquittement des droits selon la situation de l'étudiant et les règles de l'établissement.). Tous les étudiants admis ne seront pas forcément de futurs étudiants inscrits dans l'établissement. + regime_formation: + title: Régime de formation + description: "Régime de formation de l'étudiant. La + liste des régimes possibles est la suivante : \n - + RF1 : formation initiale\n - RF2 : formation initiale + hors apprentissage\n - RF3 : reprise d'études non + financée sans convention\n - RF4 : contrat d'apprentissage\n + \ - RF5 : formation continue\n - RF6 : formation + continue hors contrat professionnel\n - RF7 : contrat + de professionnalisation\n" + type: object + properties: + libelle: + title: Libellé + type: string + description: 'Libellé de la formation de l''étudiant. + + ' + example: formation initiale + enum: + - formation initiale + - formation initiale hors apprentissage + - reprise d'études non financée sans convention + - contrat d'apprentissage + - formation continue + - formation continue hors contrat professionnel + - contrat de professionnalisation + code: + title: Code + type: string + description: 'Code de la formation correspondant + au régime. C''est un code technique pour exploiter + différents mécanismes indépendament du label du + régime. + + ' + example: RF1 + enum: + - RF1 + - RF2 + - RF3 + - RF4 + - RF5 + - RF6 + - RF7 + code_cog_insee_commune: + title: Commune de l'établissement d'études + type: string + description: Code Insee à 5 chiffres de la commune de + l'établissement d'études de l'étudiant. + example: '29085' + etablissement_etudes: + title: Établissement d'études + description: "Code UAI et libellé de l'établissement + d'enseignement supérieur dans lequel l'étudiant est + admis. \n\nPour retrouver d'autres informations sur + l'établissement, vous pouvez utiliser l'[API \"Annuaire + de l'éducation nationale\"](https://api.gouv.fr/les-api/api-annuaire-education) + ou le site https://annuaire-education.fr.\n" + type: object + properties: + uai: + title: Code UAI + type: string + description: 'Code d''unité administrative immatriculée + (code UAI) de l''établissement où est scolarisé + l''élève. Ce code unique inscrit au répertoire + national des établissements est composé de 7 chiffres + et d''une lettre ; les trois premiers chiffres + correspondent au numéro de département de l''établissement. + + ' + pattern: "^\\d{7}\\w$" + example: 0011402U + nom: + title: Appelation officielle + type: string + description: Appelation officielle de l'établissement + associée au code UAI. + example: EGC AIN BOURG EN BRESSE EC GESTION ET COMMERCE + (01000) + identite: + title: Données d'identité de l'étudiant + description: Données d'identité de l'étudiant corrigées et + certifiées via l'API Ines qui croise l'état civil et le + numéro INE de l'étudiant. + type: object + properties: + nom_naissance: + title: Nom de naissance + type: string + description: "Nom de naissance de l'étudiant. Il s'agit + du nom de famille tel qu'indiqué sur l'acte de naissance, + de mariage, sur le livret de famille, etc. Ce nom figure + toujours sur la pièce d'identité en premier, avant le + nom d'usage si le particulier en a un. \n\nEn cas de + changement de nom de naissance, une mention avec le + nouveau nom de famille est inscrite sur l'acte de naissance.\n" + example: Moustaki + prenom: + title: Prénom + type: string + description: Prénom de l'étudiant. + example: Georges + date_naissance: + title: Date de naissance + type: string + format: date + description: Date de naissance de l'étudiant. + example: '1992-11-29' + required: + - nom_naissance + - prenom + - date_naissance + required: + - admissions + - identite + additionalProperties: false + links: + type: object + meta: + type: object + required: + - data + - links + - meta + '404': + description: Étudiant non identifié + content: + application/json: + examples: + entite_non_trouvee_25003: + value: + errors: + - code: '25003' + title: Entité non trouvée + detail: Aucun étudiant n'a pu être trouvé avec les critères + de recherche fournis. + source: + meta: + provider: MESRI + summary: Entité non trouvée + description: Aucun étudiant n'a pu être trouvé avec les critères + de recherche fournis. + schema: + "$ref": "#/components/schemas/Error" + '502': + description: Erreur du fournisseur + content: + application/json: + examples: + provider_unknown_error: + value: + errors: + - code: '25999' + title: Erreur inconnue du fournisseur de données + detail: La réponse retournée par le fournisseur de données est + invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + source: + meta: + provider: MESRI + summary: Erreur inconnue du fournisseur de données + description: La réponse retournée par le fournisseur de données + est invalide et inconnue de notre service. L'équipe technique + a été notifiée de cette erreur pour investigation. + schema: + "$ref": "#/components/schemas/Error" + '504': + description: Erreur d'intermédiaire + content: + application/json: + examples: + timeout_error: + value: + errors: + - code: '25002' + title: Intermédiaire hors-délai + detail: Temps d’attente d’une réponse du fournisseur de données + écoulé. + source: + meta: + provider: MESRI + summary: Intermédiaire hors-délai + description: Temps d’attente d’une réponse du fournisseur de données + écoulé. + provider_unavailable_error: + value: + errors: + - code: '25001' + title: Service non disponible + detail: Service du fournisseur de données temporairement indisponible + ou en maintenance. + source: + meta: + provider: MESRI + summary: Service non disponible + description: Service du fournisseur de données temporairement indisponible + ou en maintenance. + network_error: + value: + errors: + - code: '00501' + title: Erreur réseau + detail: Problème de connexion au serveur distant. L'erreur peut + venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + source: + meta: + retry_in: 10 + summary: Erreur réseau + description: Problème de connexion au serveur distant. L'erreur + peut venir soit du fournisseur, soit de API Entreprise. Il s'agit + souvent d'une erreur temporaire. + dns_resolution_error: + value: + errors: + - code: '25004' + title: Erreur de résolution DNS + detail: Problème de résolution DNS de l'adresse du serveur + source: + meta: + provider: MESRI + summary: Erreur de résolution DNS + description: Problème de résolution DNS de l'adresse du serveur + schema: + "$ref": "#/components/schemas/Error" +servers: +- url: https://particulier.api.gouv.fr + description: Environnement de production +- url: https://staging.particulier.api.gouv.fr + description: Environnement de staging +components: + schemas: + Error: + type: object + properties: + errors: + type: array + items: + type: object + properties: + title: + type: string + detail: + type: string + code: + type: string + required: + - title + - detail + - code + required: + - errors + securitySchemes: + jwt_bearer_token: + type: http + description: |- + Votre jeton d'authentification doit être placé dans le header 'Authorization: Bearer VOTRE_JWT', sa validité est de 18 mois. Dans le cas où vous utilisez une API FranceConnectée, vous devez utiliser le jeton FranceConnect à la place du jeton d'authentification. + + Exemple cURL : + + curl -X GET \ + -H "Authorization: Bearer $token" \ + --url "https://entreprise.api.gouv.fr/v3/..." + name: Authorization + in: header + scheme: bearer + bearerFormat: JWT diff --git a/config/api-particulier-openapi.yml b/config/api-particulier-openapi.yml index 84855eacd..0a60c12e2 100644 --- a/config/api-particulier-openapi.yml +++ b/config/api-particulier-openapi.yml @@ -57,11 +57,17 @@ tags: [] paths: "/api/v2/allocation-adulte-handicape": get: - summary: Allocation Adulte Handicapé + summary: Statut allocation adulte handicapé (AAH) tags: - - AAH - - Prochainement + - Prestations sociales parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -76,6 +82,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -129,7 +136,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -152,6 +159,27 @@ paths: de jeton FranceConnect. example: M required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: Nom de la commune de naissance. En l'absence de jeton FranceConnect + et du codeInseeLieuDeNaissance, ce paramètre est obligatoire si la personne + est née en France + required: false + - name: codeInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: Code INSEE du département de naissance. En l'absence de jeton + FranceConnect et du codeInseeLieuDeNaissance, ce paramètre est obligatoire + si la personne est née en France + required: false - name: recipient in: query description: |- @@ -166,13 +194,30 @@ paths: security: - franceConnectToken: [] apiKey: [] - description: Savoir si un particulier est bénéficiaire de l'Allocation Adulte - Handicapé (AAH). Retourne également des informations sur les dates d'ouverture - des droits. L'API peut être appellée avec les données identité pivot ou avec - un jeton FranceConnect. + description: "Statut bénéficiaire de l'allocation adulte handicapé (AAH). \n\n + Retourne également des informations sur les dates d'ouverture des droits. + \n L'API peut être appellée avec les données identité pivot ou avec un jeton + FranceConnect." responses: '200': description: Particulier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. x-operationId: api_particulier_v2_cnav_allocation_adulte_handicape content: application/json: @@ -180,7 +225,7 @@ paths: type: object properties: status: - title: Statut bénéficiaire de l'Allocation Adulte Handicapé (AAH) + title: Statut bénéficiaire de l'allocation adulte handicapé (AAH) type: string description: Indique si le particulier est bénéficiaire de la complémentaire de santé solidaire au moment de l'appel. @@ -191,9 +236,9 @@ paths: title: Date d'ouverture du droit à l'AAH type: string nullable: true - description: "Date de début de droit à l'AAH si le particulier - est bénéficiaire. \n Ce champs est null dans le cas où le particulier - n'est pas bénéficiaire de l'AAH." + description: | + "Date de début de droit à l'AAH si le particulier est bénéficiaire. + Ce champs est null dans le cas où le particulier n'est pas bénéficiaire de l'AAH." example: '1992-11-29' '400': description: Mauvais paramètres d'appels @@ -265,11 +310,17 @@ paths: "$ref": "#/components/schemas/Error" "/api/v2/allocation-soutien-familial": get: - summary: Allocation de Soutien Familial + summary: Statut allocation de soutien familial (ASF) tags: - - ASF - - Prochainement + - Prestations sociales parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -295,6 +346,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -348,7 +400,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -371,16 +423,54 @@ paths: de jeton FranceConnect. example: M required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: Nom de la commune de naissance. En l'absence de jeton FranceConnect + et du codeInseeLieuDeNaissance, ce paramètre est obligatoire si la personne + est née en France + required: false + - name: codeInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: Code INSEE du département de naissance. En l'absence de jeton + FranceConnect et du codeInseeLieuDeNaissance, ce paramètre est obligatoire + si la personne est née en France + required: false security: - franceConnectToken: [] apiKey: [] - description: Savoir si un particulier est bénéficiaire de l'Allocation de Soutien - Familial (ASF). Retourne également des informations sur les dates d'ouverture + description: Savoir si un particulier est bénéficiaire de l'allocation de soutien + familial (ASF). Retourne également des informations sur les dates d'ouverture et de fermeture des droits. L'API peut être appellée avec les données identité pivot ou avec un jeton FranceConnect. responses: '200': description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. x-operationId: api_particulier_v2_cnav_allocation_soutien_familial content: application/json: @@ -388,11 +478,11 @@ paths: type: object properties: status: - title: Statut bénéficiaire de l'Allocation de Soutien Familial + title: Statut bénéficiaire de l'allocation de soution familial (ASF) type: string - description: Indique si le particulier est bénéficiaire de l'Allocation - de Soutien Familial au moment de l'appel. + description: Indique si le particulier est bénéficiaire de l'allocation + de soution familial au moment de l'appel. enum: - beneficiaire - non_beneficiaire @@ -401,19 +491,15 @@ paths: type: string nullable: true description: "Date de début de droit à l'ASF si le particulier - est bénéficiaire. \n Ce champs est null dans le cas où le particulier + est bénéficiaire. \n Ce champ est null dans le cas où le particulier n'est pas bénéficiaire de l'ASF." example: '1992-11-29' dateFin: title: Date de fermeture du droit à l'ASF type: string nullable: true - description: "Date de fin de droit à l'Allocation de Soutien Familial - du particulier bénéficiaire. \n Ce champs est calculé en ajoutant - 12 mois à la date de début de droit à l'ASF. \n Ce champs sera - null dans le cas où le particulier n'est pas bénéficiaire de - l'ASF." - example: '1993-11-29' + description: Ce champs ne délivrant pas l'information souhaitée à la base il est toujours à null désormais + example: null '400': description: Mauvais paramètres d'appels content: @@ -484,10 +570,17 @@ paths: "$ref": "#/components/schemas/Error" "/api/v2/complementaire-sante-solidaire": get: - summary: Complémentaire santé solidaire + summary: Statut complémentaire santé solidaire (C2S) tags: - - Complementaire Sante Solidaire + - Prestations sociales parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -513,6 +606,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -566,7 +660,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -613,217 +707,41 @@ paths: security: - franceConnectToken: [] apiKey: [] - description: "Savoir si un particulier est bénéficiaire de la complémentaire - santé solidaire (C2S). \n\n Pour de plus amples informations sur cette api - et y avoir accès en avant première, veuillez contacter l'équipe API Particulier. - \n **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/complementaire_sante_solidaire) + description: "Statut bénéficiaire de la complémentaire santé solidaire (C2S). + \n\n Retourne également des informations sur les dates d'ouverture des droits. + \n Pour plus d'informations sur cette API et obtenir un accès en avant-première, + veuillez contacter l'équipe API Particulier. \n **Données disponibles en bac + à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/complementaire_sante_solidaire) \n L'API peut être appellée avec les données identité pivot ou avec un jeton - FranceConnect. " + FranceConnect." responses: '200': - description: Quotient Familial trouvée + description: Complementaire Santé Solidaire trouvée + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. x-operationId: api_particulier_v2_cnav_complementaire_sante_solidaire content: application/json: schema: type: object properties: - allocataires: - title: Informations sur les parents composant la famille - type: array - minItems: 1 - items: - type: object - properties: - nomNaissance: - title: Nom - type: string - description: Nom de naissance de l'allocataire - example: JACQUES - nomUsuel: - title: Nom d'usage - type: string - description: Nom d'usage de l'allocataire - example: JACQUES - nullable: true - prenoms: - title: Prénoms - type: string - description: Prénoms de l'allocataire - example: JEAN-PIERRE THOMAS - anneeDateDeNaissance: - title: Année de naissance - type: string - example: '2000' - description: Année de la date de naissance de l'allocataire. - Peut-être vide si inconnue. - nullable: true - moisDateDeNaissance: - title: Mois de naissance - type: string - example: '01' - description: Mois de la date de naissance de l'allocataire. - Peut-être vide si inconnue. - nullable: true - jourDateDeNaissance: - title: Jour de naissance - type: string - example: '31' - description: Jour de la date de naissance de l'allocataire. - Peut-être vide si inconnue. - nullable: true - sexe: - title: Sexe - type: string - description: Sexe de l'allocataire - example: M - enum: - - F - - M - enfants: - type: array - title: Informations sur les enfants composant la famille - items: - type: object - properties: - nomNaissance: - title: Nom de naissance - type: string - description: Nom de naissance de l'enfant - example: JACQUES - nomUsuel: - title: Nom d'usage - type: string - description: Nom d'usage de l'enfant - example: JACQUES - nullable: true - prenoms: - title: Prénoms - type: string - description: Prénoms de l'enfant - example: JEAN-PIERRE THOMAS - anneeDateDeNaissance: - title: Année de naissance - type: string - example: '2000' - description: Année de la date de naissance de l'enfant. - Peut-être vide si inconnue. - nullable: true - moisDateDeNaissance: - title: Mois de naissance - type: string - example: '01' - description: Mois de la date de naissance de l'enfant. Peut-être - vide si inconnue. - nullable: true - jourDateDeNaissance: - title: Jour de naissance - type: string - example: '31' - description: Jour de la date de naissance de l'enfant. Peut-être - vide si inconnue. - nullable: true - sexe: - title: Sexe - type: string - description: Sexe de l'enfant - example: M - enum: - - F - - M - adresse: - title: Adresse de la famille - type: object - description: Adresse au format de la poste - properties: - identite: - title: Identité du destinataire - type: string - example: Monsieur JEAN JACQUES - description: 'Identité du destinataire : Civilité, titre ou - qualité + nom et prénom' - complementInformation: - title: Complément d'information du destinataire ou point de - remise - description: Complément d'information du destinataire ou point - de remise. - type: string - nullable: true - example: - complementInformationGeographique: - title: Complément d'information du point géographique - type: string - nullable: true - example: - description: Complément d'information du point géographique. - numeroLibelleVoie: - title: Voie - type: string - description: Numéro et libellé de la voie - example: 1 RUE DE LA GARE - nullable: true - lieuDit: - title: Lieu-dit - type: string - nullable: true - example: - description: 'Lieu-dit ou service particulier de distribution - : poste restante, boîte postale' - codePostalVille: - title: Code postal - type: string - description: Code postale et localité de destination - example: '75002' - pays: - title: Pays - type: string - description: Pays - example: FRANCE - required: - - identite - - complementInformation - - complementInformationGeographique - - numeroLibelleVoie - - lieuDit - - codePostalVille - - pays - regime: - title: Régime de l'allocataire - type: string - description: Précise le régime de l'allocataire (CNAF ou MSA) - example: MSA - enum: - - CNAF - - MSA - quotientFamilial: - title: Quotient familial CAF ou MSA - type: integer - description: Valeur du quotient familial calculé par la CAF ou - la MSA - example: 1045 - annee: - title: Année du quotient familial - type: integer - description: Année de calcul du quotient familial - example: 2023 - mois: - title: Mois du quotient familial - type: integer - description: Mois de calcul du quotient familial - example: 6 - annee_calcul: - title: Année du calcul du quotient familial - type: integer - description: Année à laquelle le quotient familial a été calculé - example: 2023 - mois_calcul: - title: Mois du calcul du quotient familial - type: integer - description: Mois auquel le quotient familial a été calculé - example: 3 status: - title: Statut bénéficiaire de la complémentaire santé solidaire - (C2S) + title: Statut bénéficiaire de la C2S type: string description: "Indique si le particulier est bénéficiaire de la complémentaire de santé solidaire au moment de l'appel. Cet @@ -844,7 +762,7 @@ paths: type: string nullable: true description: "Date de début de droit à la complémentaire santé - solidaire (C2S) si le particulier est bénéficiaire. \n Ce champs + solidaire (C2S) si le particulier est bénéficiaire. \n Ce champ est null dans le cas où le particulier n'est pas bénéficiaire de la C2S." example: '1992-11-29' @@ -852,12 +770,8 @@ paths: title: Date de fermeture du droit à la C2S type: string nullable: true - description: "Date de fin de droit à la complémentaire santé solidaire - (C2S) du particulier bénéficiaire. \n Ce champs est calculé - en ajoutant 12 mois à la date de début de droit à la C2S. \n - Ce champs sera null dans le cas où le particulier n'est pas - bénéficiaire de la C2S." - example: '1993-11-29' + description: Ce champs ne délivrant pas l'information souhaitée à la base il est toujours à null désormais + example: null '400': description: Mauvais paramètres d'appels content: @@ -929,11 +843,17 @@ paths: "$ref": "#/components/schemas/Error" "/api/v2/prime-activite": get: - summary: Prime d'activité + summary: Statut prime d'activité tags: - - Prime d'activité - - Prochainement + - Prestations sociales parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -959,6 +879,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -1012,7 +933,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -1035,16 +956,54 @@ paths: de jeton FranceConnect. example: M required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: Nom de la commune de naissance. En l'absence de jeton FranceConnect + et du codeInseeLieuDeNaissance, ce paramètre est obligatoire si la personne + est née en France + required: false + - name: codeInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: Code INSEE du département de naissance. En l'absence de jeton + FranceConnect et du codeInseeLieuDeNaissance, ce paramètre est obligatoire + si la personne est née en France + required: false security: - franceConnectToken: [] apiKey: [] - description: Savoir si un particulier est bénéficiaire de la Prime d'activité - (PA). Précise également si la PA est majorée ainsi que les dates d'ouverture - et de fermeture des droits. L'API peut être appellée avec les données identité - pivot ou avec un jeton FranceConnect. + description: "Statut bénéficiaire de la prime d'activité, majorée ou non. \n\n + Retourne également des informations sur les dates d'ouverture des droits. + \n L'API peut être appellée avec les données identité pivot ou avec un jeton + FranceConnect." responses: '200': description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. x-operationId: api_particulier_v2_cnav_prime_activite content: application/json: @@ -1052,7 +1011,7 @@ paths: type: object properties: status: - title: Statut bénéficiaire de la Prime d'activité + title: Statut bénéficiaire de la prime d'activité type: string description: Indique si le particulier est bénéficiaire de la prime d'activité au moment de l'appel. @@ -1060,33 +1019,29 @@ paths: - beneficiaire - non_beneficiaire majoration: - title: Majoration de la prime d'activité + title: Statut bénéficiaire de la majoration de la prime d'activité type: boolean nullable: true description: Indique si le particulier est bénéficiaire de la - prime d'activité majorée au moment de l'appel. Nécessite un - scope spécifique pour être envoyé. Sera null si le particulier - n'est pas bénéficiaire de la prime d'activité. + prime d'activité majorée au moment de l'appel. Ce champ est + renvoyé si les droits du jeton (obtenus par habilitation) le + permettent. Ce champ sera null si le particulier n'est pas bénéficiaire + de la prime d'activité. example: false dateDebut: title: Date d'ouverture du droit à la prime d'activité type: string nullable: true description: "Date de début de droit à la prime d'activité si - le particulier est bénéficiaire. \n Ce champs est null dans - le cas où le particulier n'est pas bénéficiaire de la prime - d'activité." + le particulier est bénéficiaire. \n Ce champ est null dans le + cas où le particulier n'est pas bénéficiaire de la prime d'activité." example: '1992-11-20' dateFin: title: Date de fermeture du droit à la prime d'activité type: string nullable: true - description: "Date de fin de droit à la prime d'activité du particulier - bénéficiaire. \n Ce champs est calculé en ajoutant 3 mois à - la date de début de droit de la prime d'activité. \n Ce champs - sera null dans le cas où le particulier n'est pas bénéficiaire - de la prime d'activité." - example: '1993-02-20' + description: Ce champs ne délivrant pas l'information souhaitée à la base il est toujours à null désormais + example: null '400': description: Mauvais paramètres d'appels content: @@ -1161,6 +1116,13 @@ paths: tags: - Quotient familial parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -1186,6 +1148,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -1239,7 +1202,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -1286,15 +1249,16 @@ paths: - name: annee in: query description: Année du quotient familial recherché. Si l'année n'est pas renseignée, - le dernier QF est transmis. Remonte au maximum à 2 ans. + l'année utilisée par défaut est celle en cours. L'API permet d'accéder à + un historique de maximum 2 ans. example: 2023 required: false schema: type: integer - name: mois in: query - description: Mois pour le quotient, si non renseigné renvoie le dernier QF - calculé + description: Mois du quotient familial recherché. Si le mois n'est pas renseigné, + le mois utilisé par défaut est celui en cours. example: 12 required: false schema: @@ -1303,14 +1267,31 @@ paths: - franceConnectToken: [] apiKey: [] description: "Quotient familial et composition de la famille d'un allocataire - du régime agricole (régime général à venir). \n Pour de plus amples informations - sur cette api et y avoir accès en avant première, veuillez contacter l'équipe + du régime agricole (régime général à venir). \n Pour plus d'informations sur + cette API et obtenir un accès en avant-première, veuillez contacter l'équipe API Particulier. \n **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/api_particulier_v2_cnav_quotient_familial_v2) \n L'API peut être appellée avec les données identité pivot ou avec un jeton FranceConnect." responses: '200': description: Quotient Familial trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 24 heure. content: application/json: examples: @@ -1395,14 +1376,14 @@ paths: type: string example: '01' description: Mois de la date de naissance de l'allocataire. - Peut-être vide si inconnue. + Peut-être vide si inconnu. nullable: true jourDateDeNaissance: title: Jour de naissance type: string example: '31' description: Jour de la date de naissance de l'allocataire. - Peut-être vide si inconnue. + Peut-être vide si inconnu. nullable: true sexe: title: Sexe @@ -1446,14 +1427,14 @@ paths: type: string example: '01' description: Mois de la date de naissance de l'enfant. Peut-être - vide si inconnue. + vide si inconnu. nullable: true jourDateDeNaissance: title: Jour de naissance type: string example: '31' description: Jour de la date de naissance de l'enfant. Peut-être - vide si inconnue. + vide si inconnu. nullable: true sexe: title: Sexe @@ -1477,8 +1458,6 @@ paths: complementInformation: title: Complément d'information du destinataire ou point de remise - description: Complément d'information du destinataire ou point - de remise. type: string nullable: true example: @@ -1504,7 +1483,7 @@ paths: codePostalVille: title: Code postal type: string - description: Code postale et localité de destination + description: Code postal et localité de destination example: '75002' pays: title: Pays @@ -1519,14 +1498,6 @@ paths: - lieuDit - codePostalVille - pays - regime: - title: Régime de l'allocataire - type: string - description: Précise le régime de l'allocataire (CNAF ou MSA) - example: MSA - enum: - - CNAF - - MSA quotientFamilial: title: Quotient familial CAF ou MSA type: integer @@ -1534,25 +1505,30 @@ paths: la MSA example: 1045 annee: - title: Année du quotient familial + title: Année effective du QF type: integer - description: Année de calcul du quotient familial + description: "Année effective du quotient familial appelé. \n\n + - Si aucune année et aucun mois n'ont été renseignés en paramètres + d'appel, le quotient familial retourné sera celui du mois de + l'année en cours. - Si aucune année, ni aucun mois sont renseignés, + l'appel est effectué par défaut avec l'année et le mois en cours. + - Si aucune année n'a été renseignée, et que le mois est renseigné, + le quotient familial retourné sera celui du mois spécifié pour + l'année en cours. En revanche, si la date finalement composée + avec cette règle s'avère dans le futur (mois postérieur au moins + en cours), l'API renvoie un erreur 400. " example: 2023 mois: - title: Mois du quotient familial + title: Mois effectif du QF type: integer - description: Mois de calcul du quotient familial + description: "Mois effectif du quotient familial. \n\n - Si aucun + mois n'est renseigné, le mois en cours est utilisé par défaut. + - Si le mois renseigné est postérieur au mois en cours, et qu'il + compose une date dans le futur avec l'année appelée, l'API renvoie + une erreur 400. \n - Si aucun mois n'a été renseigné mais que + l'année a été spécifiée en paramètres d'appel, le quotient familial + retourné sera celui du mois en cours pour l'année spécifiée." example: 6 - annee_calcul: - title: Année du calcul du quotient familial - type: integer - description: Année à laquelle le quotient familial a été calculé - example: 2023 - mois_calcul: - title: Mois du calcul du quotient familial - type: integer - description: Mois auquel le quotient familial a été calculé - example: 3 x-operationId: api_particulier_v2_cnav_quotient_familial_v2 '400': description: Mauvais paramètres d'appels @@ -1562,8 +1538,10 @@ paths: Mauvais paramètres d'appels: value: error: bad_request - reason: Le sexe n'est pas correctement formaté (m ou f) - message: Le sexe n'est pas correctement formaté (m ou f) + reason: L'année demandée n'est pas correctement formatée ou est + dans le futur. + message: L'année demandée n'est pas correctement formatée ou est + dans le futur. schema: "$ref": "#/components/schemas/Error" '404': @@ -1585,13 +1563,13 @@ paths: MSA. message: Le dossier allocataire n'a pas été trouvé auprès de la MSA. - Dossier non trouvé CNAV: + Dossier non trouvé CNAF: value: error: not_found reason: Le dossier allocataire n'a pas été trouvé auprès de la - CNAV. + CNAF. message: Le dossier allocataire n'a pas été trouvé auprès de la - CNAV. + CNAF. schema: "$ref": "#/components/schemas/Error" '503': @@ -1601,7 +1579,7 @@ paths: examples: Erreur du fournisseur: value: - error: data_provider_error + error: provider_unknown_error reason: La réponse retournée par le fournisseur de données est invalide et inconnue de notre service. L'équipe technique a été notifiée de cette erreur pour investigation. @@ -1643,11 +1621,17 @@ paths: "$ref": "#/components/schemas/Error" "/api/v2/revenu-solidarite-active": get: - summary: Revenu de solidarité active + summary: Statut revenu de solidarité active (RSA) tags: - - RSA - - Prochainement + - Prestations sociales parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: X-Api-Key in: header schema: @@ -1673,6 +1657,7 @@ paths: - name: nomNaissance in: query description: Nom de naissance. Ne pas renseigner si présence de jeton FranceConnect. + Le champ est obligatoire pour les appels non FranceConnecté example: JEAN required: false schema: @@ -1726,7 +1711,7 @@ paths: 5 chiffres. Ne pas remplir si la personne est née à l'étranger ou si présence de jeton FranceConnect. En l'absence de jeton FranceConnect et du triplet (nomCommuneNaissance, anneeDateDeNaissance, codeInseeDepartementNaissance), - le champs est obligatoire si la personne est née en France + le champ est obligatoire si la personne est née en France required: false - name: codePaysLieuDeNaissance in: query @@ -1749,16 +1734,54 @@ paths: de jeton FranceConnect. example: M required: false + - name: nomCommuneNaissance + in: query + schema: + type: string + minLength: 1 + example: Gennevilliers + description: Nom de la commune de naissance. En l'absence de jeton FranceConnect + et du codeInseeLieuDeNaissance, ce paramètre est obligatoire si la personne + est née en France + required: false + - name: codeInseeDepartementNaissance + in: query + schema: + type: string + minLength: 2 + maxLength: 3 + example: '92' + description: Code INSEE du département de naissance. En l'absence de jeton + FranceConnect et du codeInseeLieuDeNaissance, ce paramètre est obligatoire + si la personne est née en France + required: false security: - franceConnectToken: [] apiKey: [] - description: Savoir si un particulier est bénéficiaire du Revenu de solidarité - active (RSA) et si le montant du RSA est majoré ou non. Retourne également - des informations sur les dates d'ouverture des droits. L'API peut être appellée - avec les données identité pivot ou avec un jeton FranceConnect. + description: "Statut bénéficiaire du revenu de solidarité active (RSA), majoré + ou non. \n\n Retourne également des informations sur les dates d'ouverture + des droits. \n L'API peut être appellée avec les données identité pivot ou + avec un jeton FranceConnect." responses: '200': description: Dossier trouvé + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. x-operationId: api_particulier_v2_cnav_revenu_solidarite_active content: application/json: @@ -1766,15 +1789,15 @@ paths: type: object properties: status: - title: Statut bénéficiaire du Revenu de solidarité active (RSA) + title: Statut bénéficiaire du revenu de solidarité active (RSA) type: string - description: Indique si le particulier est bénéficiaire du Revenu + description: Indique si le particulier est bénéficiaire du revenu de solidarité active au moment de l'appel. enum: - beneficiaire - non_beneficiaire majoration: - title: Majoration du RSA + title: Statut bénéficiaire de la majoration du RSA type: boolean nullable: true description: Indique si le particulier est bénéficiaire du RSA @@ -1787,19 +1810,15 @@ paths: type: string nullable: true description: "Date de début de droit au RSA si le particulier - est bénéficiaire. \n Ce champs est null dans le cas où le particulier + est bénéficiaire. \n Ce champ est null dans le cas où le particulier n'est pas bénéficiaire du RSA." example: '1992-11-29' dateFin: - title: Date de fermeture du droit au Revenue de solidarité active + title: Date de fermeture du droit au revenu de solidarité active type: string nullable: true - description: "Date de fin de droit au Revenue de solidarité active - du particulier bénéficiaire. \n Ce champs est calculé en ajoutant - 3 mois à la date de début de droit du RSA. \n Ce champs sera - null dans le cas où le particulier n'est pas bénéficiaire du - RSA." - example: '1993-02-20' + description: Ce champs ne délivrant pas l'information souhaitée à la base il est toujours à null désormais + example: null '400': description: Mauvais paramètres d'appels content: @@ -1872,7 +1891,7 @@ paths: get: summary: Statut élève scolarisé et boursier tags: - - Scolarité étudiant + - Éducation et études parameters: - name: X-Api-Key in: header @@ -2009,8 +2028,11 @@ paths: Indique si l'élève est boursier dans l'établissement. Les bourses concernent uniquement les élèves des collèges et lycées. ⚠️ Si le statut boursier est à "false" avant mi-octobre, cela ne signifie pas forcément que l'élève n'est pas boursier. Il peut s'agir d'un faux négatif lié à une absence de l'information en base. Pour en savoir plus consulter la fiche métier : https://particulier.api.gouv.fr/catalogue/education_nationale/statut_eleve_scolarise#faq_entry_answer_1_api_particulier_endpoint_education_nationale_statut_eleve_scolarise. + + Ce champs prend la valeur null lorsque l'on ne sait pas si l'élève est boursier ou non type: boolean example: true + nullable: true niveau_bourse: description: | Indique l'échelon de la bourse de l'élève. Est à "null" quand "est_boursier" est "false". Les bourses concernent uniquement les élèves des collèges et lycées. @@ -2020,7 +2042,7 @@ paths: example: 1 nullable: true enum: - - + - null - 1 - 2 - 3 @@ -2114,7 +2136,7 @@ paths: get: summary: Paiements versés par France Travail tags: - - Paiements France Travail + - Demandeurs d'emploi parameters: - name: X-Api-Key in: header @@ -2270,6 +2292,13 @@ paths: **Données disponibles en bac à sable :** [liste](https://github.com/etalab/siade_staging_data/blob/develop/payloads/api_particulier_v2_cnaf_quotient_familial) parameters: + - name: Cache-Control + in: header + description: Si cette valeur est fixée à "no-cache", le système de cache est + alors ignoré et la donnée est directement récupérée depuis le fournisseur + de données. + schema: + type: string - name: numeroAllocataire in: query description: Numéro d'allocataire. Numéro de 1 à 7 chiffres. Le numéro d'allocataire @@ -2305,6 +2334,23 @@ paths: '200': x-operationId: api_particulier_v2_cnaf_quotient_familial description: Foyer tel qu'il est déclaré à la CAF + headers: + X-Response-Cached: + schema: + type: boolean + example: true + enum: + - true + - false + default: false + description: Indique si la réponse a été caché. + X-Cache-Expires-in: + schema: + type: number + nullable: true + example: 9001 + description: Secondes avant que le cache n'expire. Si le cache est vide, + ce header est vide (mais présent). La durée du cache est de 1 heure. content: application/json: schema: @@ -2519,7 +2565,7 @@ paths: schema: type: string tags: - - Situation France Travail + - Demandeurs d'emploi responses: '200': x-operationId: api_particulier_v2_pole_emploi_statut @@ -2631,7 +2677,7 @@ paths: ligneVoie: type: string example: 21 RUE DES MARMOTS - ligneComplementDestinaire: + ligneComplementDestinataire: type: string nullable: true example: @@ -2744,7 +2790,7 @@ paths: "/api/v2/etudiants": get: tags: - - Statut étudiant + - Éducation et études parameters: - name: ine description: Identifiant National Étudiant (INE). Cet identifiant est unique @@ -2872,10 +2918,8 @@ paths: type: string description: | Régime de formation de l'étudiant. Il existe deux modalités différentes : - - - formation initiale : Ce champ indique que l'étudiant est en formation initiale sous statut étudiant (y compris dans le cadre de reprise d’études) ou en en apprentissage ; - - - formation continue : Ce champ indique que l'étudiant est en formation continue ou en contrat de professionalisation." + - formation initiale : Ce champ indique que l'étudiant est en formation initiale, soit dans une des situations suivantes : formation initiale classique, reprise d'études non financée sans convention et contrat d'apprentissage ; + - formation continue : Ce champ indique que l'étudiant est en formation continue ou en contrat de professionalisation." example: formation initiale enum: - formation initiale @@ -2930,7 +2974,7 @@ paths: "/api/v2/etudiants-boursiers": get: tags: - - Statut étudiant boursier + - Éducation et études parameters: - name: ine description: Identifiant National Étudiant (INE). Cet identifiant est unique diff --git a/config/application.rb b/config/application.rb index c9bdb4354..182023b30 100644 --- a/config/application.rb +++ b/config/application.rb @@ -46,5 +46,7 @@ class Application < Rails::Application config.assets.version = 'v3' config.cache_store = :redis_cache_store, config_for(:cache_redis) + + config.active_support.to_time_preserves_timezone = :zone end end diff --git a/config/cancelled_open_bureau_dates.yml b/config/cancelled_open_bureau_dates.yml new file mode 100644 index 000000000..75339db72 --- /dev/null +++ b/config/cancelled_open_bureau_dates.yml @@ -0,0 +1 @@ +- '2024-11-19' diff --git a/config/credentials/production.yml.enc b/config/credentials/production.yml.enc index ac7109a30..224505042 100644 --- a/config/credentials/production.yml.enc +++ b/config/credentials/production.yml.enc @@ -1 +1 @@ -cyqcLEHJyBbNsgb2zsAnB+0koDVPuzvGtUhvzHA9qLMqbuAuUM3HnLMDYQn1f2vZSX2ZJZsgUczgucKitTYu8YURa780+8CS/6QbI7Vo2wpxP2HyXte8CTHtWxe9aud1OUxTIHS9dDrZAr/rxmp+bw44mPdlobU3b4P/+obDIDp2DrPxSddJrV62QV8aFlKptT2gmkLJg6tRTGQpKyeBHOnHrWnmN8lrdjLxYwef6g9g2uVRmZkJm5GV0W2aZ8hOSu/jbgogqGgtPtj6Od/pzRPqKliONMNDkP7Scn9FXJad/HfF/5rdFI1JwGyUCMXS0BOiesoXaDLQwnRsbcIzwMb1N2okhHuEJb0nrDWZMjS63kqN6epydS0mTQRHtkjpsDf8tjo7jHCaEtwccgcisRzFQIGaz4CRq4bzu8AETedWmV+97Yna7bhrtmYvwrQDU01RxoVulTed/at0CJ3PQBv+suv6xI93m9e0d2C8KnXYrQClXyuJTm/v7aTSm8aGv64ry87JNotg69L2ABWZYe5mm5xg9J9wDfXDtJkehQ8xKTqe/jw1RdVXWlodlxzeZCamgtnCQdrA6T8a4AWx0eCLOVQR/76gLqJ/b5JawvA9kqBbCLH7ehdCH2uiag2jkrOVzascENra81cY+x1wLEdFvo8viYceJxPB1WyvDp8cyRHooA4NbIppefRzTetb6vJbADe9gLcg+zJt+SDnQh/ES1gWQFd6hAhjhpjvumtpHflUwm/f1Boz34dOQJvTQlwmvfAluq7wM5PZYX2RiAWvhEBWvCKOmZRdImwAxkCZTnnjGifGG2/jcObfMIvh2VJzKYeph+dksjPG28DS4hClmR1BKgWkTcdzGsURy/UC2F7bIkXZ8ecZTmYEyDJU/2NxWcjPRAin8r2hTLaXcNJ2n94hUHzi49N6FSiljXK4AQ2iaZ22isku7R1BgCraP1HNxyevmNY0r195II8/Hc8sjlb4itgiZ00kk5SSU1UpoSNJBP5bVLN5flJALk42sQ1DCt2mogHzbzFu2J2dV1be+SUmEWqRjN6PbMEQ5XUmqrSD+kaPtDb/7tsJ8mbYnBsf2UukrCtMWti4QTKsmAX+LmWtQL8DhqpXUXH2D2N9QKTbLpSBNxLy2DDrfHNkixmagElkTEdcjfoCx64X/BH0V5ifAoTbXguORROU395kzRp56di8hbivzLZexEjJOFsq4vFW5i/xmI0xqOuC9CFcgN/s184070l9izuas9eeVwTfQ4iBK5piNFaIZNnn9b28QhjGQaUH+gkAfUUx7Sl6ftCcxOw98lYIBsr4CUZSIkujdMX7lZNbGv3ciFrgN9v8E7mI/6bc25xZp0OovICvHTwLu8ID1aDhBgtE49QQzETHS4ubUUWo6AgxvyIuQ+hIYneBB0OU2cuHJXDun4a63z+ssVBwPoN2/xOo7dIDZ9sboq5A5SBFR1JNq8vUoV3FTxCI9cIQqslris5a5vgpMvVS3rBsyt9G/retDopv1GM4WRFaqNyFMA9PikaYyRADbw7X/6WwO2HQjRlpIjuRBlf7/f5Tmv060rkwdNR/NVWSnT1RTYtszeJJVUNTfMElFzYomvawwLJ+819Aw19X79lem1dNZxRiCFy0V3dXuKv53SGTEz0QwnVBrOflZLClEBMMfnF3yNxpA5pRY3CHRDHdsIhIYhQT96i+guY0KwTrKo8sTOWqF6UJXfNR8bHsbzU4NuE0eHH1Az9HUyB14dqgl3W2yT7orCFi388bTozLoPnnNXkAIF6/h32E9eMdEzeAz7l3FKC+hIbbSjo1TlE7yxu8Q2pFYuIKuvx/7DvEQ+ltG7TWaFeigR5svJ7ukBncKGkqyAZriOr+HgnA2qMUMapOMRen4Wu57quL23JI33thuXOcL2JN2UGl/J+x4sp3/I4NFJYT4cUNyPqIXrul4CDoItGaMK0yKELkZavBte8Jn51HDwQ3QDlLYfIvjapXOQrr1GPK2KGAwNKhO9tnEZFbnAfnvNzXLsX/LSd363D2lRCaGpWItdNy2kg6hNiIX5ps0I6T6hhEE4eBLnEd52KxZczmKhv0YgJlIhU9br8OE8fpO1dtnt4lvbqpKCE/RLVR9bOLBXQBipiQAWKiC8vJZs0IQAF8mj/0sqny6ytu0REAFaHANDGUFuF/v8x31LMauV2pE0CB3xpr5GlYapgzJygn6tAzSRjxnW3chhP0F1XwUgFGGN4a3XHyS1xm+4ZKsSqu76TnF4HzwLE2peYchoaO9gWw1A6EytoG7c2Pi+ZKUDLRInOplFe2jxZkgJ0WYHbgbzFBakTqEasnKZMPOHAOh9dJAn3dqxly2nyUtNcMzkk7Pb+5gPQbLG68uSwLHCljHdatNqTseME2XO+2Vhs8bM0Cixn3z0LWbk7fda7MrVGA1O7VjLw72VbJrfsqE/O6GBLURCodgOMj7LLw8xsQIHcwxCOjbMPF6R/u2DV6592VdzAeiqwtsriFTmDxexwwPOQgV6M7tZ1zBiRTGj8n2+ZimedV428wGmaYKO1fn8U2tyJlaWLJsaeiowTEpv22LHyvGJYWlZAaCv9IgZsi/z2xjasDDLXV4/5d1sEmca0sD/R1kiK0XBOldyFM--wZkWHgUfL6lLzi0R--/f5HhUSn4ZFkcAzEAzHasg== \ No newline at end of file +ZmObCkeMC6ggIaMXD3KAtos2LbhrxUN9QOex7gPbunclfFm6n0W0PlE5BqT5ME4o5jDrS7YrsJIjz908pYJO+ksonVnObTMIZtbPGflcEIAoQaYkEHLqOYpya0tDabBYoEcDLUvMJfvpQc0M9HN81CEgeKnvOyAlhFTkd42TWTu3rtXHsAC11DGGScS/Bv2DMDv+ak3XtTmDZy0mZUU+zeCyzAKX0jMLAfF9mKpMd1Im4eRTSzVNUbMT4F0SokOokAM9aoziC80u9R3OyCXzGIBJpZgv6M0xYhMhoF656qfKrnTFH8qwjU2ozJ5Lv7GWviryBb0PB6cxByG93qAK7zCh/lWVpyEfbyM3Ir56/0VhM5bHwFt/MDn0zDxi4A1VeVA6zGbKdCk67FWQzvyeFj7N+mEtX1m5gqksqL+si3bOI5IbJnTkotRyZacHGuDF1lyoFbuT83QdRRfG2SPqEswvdCkwKF0w9N9Tp9TPYTcIILOet/T5S6WfraHMVezH2ulJbAZwRYIfiEiGulIFE/nJP1dRo7s/cWbHT5P9zHbkyELq7eFVgxAlF0KWs88W9770pl+8apQIaSJLwtcd0xaUTEcT1HM/tPcMkdp67C5sSG6qVLznsIS+MgKTejjkEHc6hBZKsiM/n/n6ce6IkKCKOTeOpM9v7ON8Nx/RejIgkLYHqBU8I34WoooQFsTX/C0rWJckhCVN/pOLmRvSx9IxJ6OgobOzkaWv+ChQNK1d8SzUkSNDwqGAoMzYGbmYWahTizq/7CMW7OfIlYKJDrNq2MJKV/+fDgGuIBalZ75y75sveEGrMXBILUTCYBDVL/eKb0EBjfNKAA8CTspK55JY3buQlRzAO6pcTYdZnMhTIpGK7Ayu2JHRyMiy6T8QAA462Oi+fBYNmymX/76Ynon3K4oMo4d5cn0ZcRp+UNu+hcGkPY65zUx/QsltiJpMm9VXBAn7cZVbICbuwAG/tYJY/5ijk2lXiji5iS/kFs0rlHg0kSuBZk8pze5WshYG/UbNX++osJS4LW0w+RIfDHVsJIgSfvH/7QxrPX7IERoJ4BoeaCeTqTp+nKYjF5Uh2vUqVBgo1Bw2vSyWTa0//6TdZfDUIjilmGnn+uxU/rfOsRFsReyv+ZvoQ23UpanrzHZsnz7tf48lM8qoca16KKVczJtJK6yZCgf05AC7ysPKL4AE/OYGv7lfX+6RdqxZY0IKb3GO6LfmrSezPsTxT+YfKrH58hK/LhhW2XTVcNtv/XhQ8MrjdX8N8mlCmM9f5ReXczMirRr0HyCMl1YD23FNg8yB1iL9KCmK5bgEfzhL/sOo3XOTCb0ispwmv55HSmTcwzDufhgURe49E/f4bS1lQvU3ntcwkMluskTmTSc5WLF/9v9PaUKl91HirL+DewzhBjweN4LzF93xZHdmrKY1M1JnCqSQjjFzl6hKVLMc4fmloFQhJxn48Z54AZodj0jfghQTZ6qjUPGdiwobyc+2TJddBRFcD6W9KKIQR8tPRzcHmmrLus4PAcIE5ZMzAV0SQOM3ConQCheMiZR4JAzxV2uM4lOxNJsAAGnI/TGEfXKnQPCWelIkVEwKV0vBNHDG2HJRySJpOPGzFphzj2r8FumJSM+La/AiIVkQrMaRFRHZJhp04ebVrVqqTC8Jqbgzl74IYthJgzoHZcWAVMKuvgcjmpgGu0T/5C2wbWyqsjsaZgK5Ib3f6Puv4IXL0avWM/rcaypO2d0u90TKUGcnJxJiuBnr9YhA8l4BlYTz8wwfrh2v0EEIctsTN7qAUGki+wmuEHNPLzPq6mfnwCyeP2CxgXxopm4keMIHQqMDG8GwxAZDXR37XsuewDjI43/3jt5blbXNlrzk2oKSXB7hpiisl8yIn7MiIBFHMjxzP6nh6saAHTTZEo7GWTcvyrG4bws20OJAryyQNQ3Ds/b6gHhAcwYQ4QX7q1oLuw2NSdj0eMskXVjgtXgmiCiYtiKqfCQ134ecHxy4cd8te5/FUKExHc0R4/E1QkIpNtyr9ChOAI8QiaIvNI9JiwVCWH6fqHdTpTS3zhaE3+CxPoBeyQvxkZMyhRcY2r8k4BX6uzdySin5El2rCHPpnUKFtJOpMXDfTUcsBCGQc1Xdh0ZMJ67Vse/Cvef1AwDejmwIf0HyX4U5ETwlrabyk34Xg6aWqTqpFzmSNgsSsKxJ1WuaOTQQ8aAsTkrU/53qEzN5kkXrjKwsw1dxLXV9bgIsnR4JdntCztKCnqyyZgTRvuGTRrTBb54rV+V7IzGyrLXODmLKU12LSZeKn+cHTRAxIlm3LRV28hRo68LvPMgTkE7VcnUkjGWsTd4edGH6M83kGM4ch+zbWEmcSOYLsl3QmPAA3GHiKrvuIwKMBPFFW6QEVuSg7W7xiER3WTqQxWPQLyS+2cB3MG/EsW604MGKIm2GtRp71vwGOvOoLUowxfUrlz0GtxC+TBqXAIERrp7oAIvp1C1+F8YNnjnfCROs36ohHfvDbUwntHubYV9hEQWAz1V6EowK9VSEmBDtz7JjYkLJRdQaNTchKOzRru3iGEyLhmn6HgkOBqwsbUxxzHT/GC42TxqDEv1QrdN4ZORYHOygXFuEVTTF6EyD4zm/v29lc2Ra3VhPKhN5kUkL7PgNW37wYSLbYDiezIM/wclQGy/bMDnKOHV0M7vj1XiIgTZdj+4fHFr1sL6VTy6tceOEIBBOIHfW+ZlSGtOc+dA9gD45qrROD8V/dXBA4JLRdF7bCeR3pkTUt1mFlmdl6CIYuyA4xpbQAOFdrijxkqNTNpR5PWHFeqiWDeRTR++rMOjBlO4eYN0Hraks5bowgDtrTU13M9qnxKIlUKzgwwxBGQFAyCcMj1WDocXrtsKSke9mrgMUCWGOaKQIIDuiaBG7kpHSWnNa2eVMrXtEWUZ/lW0eJ1gi47RlomarHZWVcVhd9KcdiTO6nJJi1y0N0fF2BDNzWIPDVAAEWSjc0tUztYYK/lLW866k+6IFI3bPcRks5qWROUb4gOn+2Ip2gxvGE7x2fFu1IcG/6BgS/wG80GrvNU7chEIHMOrbqmdbuQP2MTKh+ewcTPqS/rtdpwNf+hBcyBJEdmMrw+4LxhluFDqh2WuMC33EfC8rHwNkvr7yF9FJXJ6oJ603ASUQ6HhfM7yvCLojeJqMEd7hqMskX6lOe3kc7apfamIUKsIjnFb62L4XxjaR+UcVQvJnJF5euziyawMwtVp6kWoTHukNrWPdJa3iNp3fpwn+VfEC+l9ltNGX3Go1g7i6DuYCIVPpkrYWAMF3EkUoBnaEdMqlEQ2YtRcjG4xYIDuxMG7vQl/ucaQ31AFnV5x8LxtsF076KI1g2cSi8g0RRbVYMp7nSXu8AGoKoS+7/rAwjkfLbU8XoNhPwerTE76TGsAJqltS8XXbrgazemK8v6rIk0BBLMDtuCSKSUh7Kx6T+Zn93uTWEVCKXCdR3ikSD3vSnXOpYUN1PD9/76VuQ82A5YHJq656dOHm+7xCSc1r1shxd5ECx9uK2KTk5qT2XPvxmUXI34Vs9UJO50hal7RwlvSVxcPDtDyjcnBTJtr/ysJI9VVuScSBaHGJe3F3fFa/A+Bx1MhpluRDNyZ07/zRoL9ButRR5FVcz9dNNyFRnHKd/aLEyrhSJzZNScHuzMOvGMCd0gvINLLmd4xSndkUtimjWngSD7P00A6nDJmqECVhJ/FfJ5RU+nNoPomLMbudQId6K6m8zBKRR1ADhMKU+UEehj0FWE7TlMS96jPHM7UqMvRvoZE8ITmNKJmQOd0+qUdZNbHzAsjxmgu3LjMEJhh5RMAXlsTA98ptuxoms++bEx6AmtQmlgC+teRsSSKebP8aPr1gBNwjqIEpOrPwceaYQjbPq2r4p83LoPtQa6zVhYgB5DeiGkenOjBlqmXq4Q2oVn3+XWxXmcqlD97iW6+NC5PH5XYMdnEL/EVd0f+JwMYsJHLlEVMu1+fnWyP87FTwiFKQ5brHvD4VaCgWEwAnHFsVPxJIFdhFmF8lS1Xb+Y/odREYgcrJRVEYkklCKeGrGcHpN0Y7oa/5WQC1I+eH0lk/N8d8cLbKv6kwE1zcih81SoVae/ltgU83j2arZXsAp8AWDSe+jZZMcEZDsHm9ml6SioOW0IFLDYnhHtNOn96fZt+Agbp5BY+19W35g96pjap3S4tDnydflEsZDRomP0JXRhEk0BqggQVs3BVbq3C5kIKlm2XKjZ1BsDSDoMTvoENXgkpCLCrRxju2bLEzRIgR5C+4yMCzhLNBTBxISnKlps6XK8wF+Q3pFNdnLhBstr2C00Eqo3sWXZ8rqfVAqZ+WxMJOz6kKV2+qmyi2DKULQovWJFmQRpLFb5FR1HLz87TwmXQSKUzCh4M+CtFGsbHHsGournvmr/Jhcer9zCT0sQD1arbsccJSRaX66UAizTtTbog4ZT7JjxM3nKdHcWO3ormV1ZB8hT9Ddv+0WYgtYFv44w1SO1w8g/u2wbJ1mKosLP/045lp+cYDENGFu/06OZEQy8xIbeoDJfgYVcn9vOFwwhF8avC1+6WH+l1buXNgoppjy6BttzSYDwsUAMJ09L0pzBlvHruB2JtJGUCqjjgbFVzAmbrvpuNOSugB6GRmyz5CMX3UNZu3ZR4ubvACVxN4WYPUsTyknxjiWo2yEe409LbUqClQIbKePiU9az7bEbO5IihDpF7y8Pgg0Uw2wZkplCI2jl0vUlUD6273+rw22z1FkCh+eUNDQabe0NtSsNVVJ26t9S53oBH6Zi6agKniYkJL3bGN99a0B1xpLRMvEH7Bol3stUTI926i3VIEeRy9Bme5ICHE7rNjDr7UIUK/wcfXi4myuhJJq9uITYGJcwi4eKcaNpt6RnkJ+2fjxYaaM/DScuhzCoKDPSiV6GlvFRV2VbUyQgVcwL+e9bJsMt228OxDm6fARDuhNcc0QjpkVjMBaivVcRDHwIE59CKyKfcXWFv23y6md5s22dcr6Ip05bymqAI7PCtKf/7lBtcpbA==--tgGTVwo/lU3jhCuB--9N1N4TlMV/Rw+Vk07mxh/w== diff --git a/config/credentials/sandbox.yml.enc b/config/credentials/sandbox.yml.enc index a9fa2cd98..72a5512a2 100644 --- a/config/credentials/sandbox.yml.enc +++ b/config/credentials/sandbox.yml.enc @@ -1 +1 @@ -WXXMzkxUMGPk9DyWjuIoBM7ei3Qxi1M3mgKXW0jpEmW3DD7SJ4CVm7VnfuerOq59nDBeugTdY34h6DWSXQQ+d/ZpgxDDBX/TASWj5tBYjjYu+g7bYGsvXwYnGNJd7xnAD8zCndBAhwfQn7TXnCzhCCytrNvLen61+scndaPRNv3ipIC/ct+NlsogiEyB/3XXntZhm7Seu/2UdO5VNSFzQlW03m+6r226Tv/17oMPR8+ZF6z/jY+igJBhOQIAD8pKfSau+ju/mSJMVdKCkM+AYWQKiDHYwS5LJIKsdK3sRIIuXbDeijo2EgiwV9HniUbloD6ElDpTf0VAj4s30ZYxIJGfy0S4ZIOsmummBk+jUEoi3GqwFMNpgMRwpVVTnDdI+opVOk6trSf0F9dv2sD8j20jXBR1lrSLN/7RXgpd+iunivJ1191AxdLsDuz/nFkUye1fGDwc/lM6BaO3/ADbFVJTpg3ro7NvUt22T9uVq5X87jRLbJ2kNkKhtiz+cAaeEp5M++Lxl9kWTDgHOQY5p/YhZnuyri7yschIqyKU3KOGMxOPns+/BOpSRS+XrJwmXxRlYGqSQKgy+ryI8XC3k97/p8tSuaYbPQr9CN1x18TPxQ5quLn9rvjYVjlyOuF2bwxV3hHiqECn+y/IYTx6Mzagk1wLeixYb8Xwgu270DzyEooac15kAfGJxeeCer1Ao/UJpahJFOsc31xKeleufyUfducCO4jFEcsipVCBAvMWY9XeFGSv0byE5CO6GkFNwZIvArnKWahGkDBg7cMehp6QdvwuzxJCDUeZLXg2ESdXoFHgVFpk/o4wRBcrC1N1bNbcwhLasKisSxN02y81qeyCxuVc3cfvdPz4MPLsIRRqUzIupayramNsUI83+35+JhIA3UGCCIxt77btVFg8c77untKWHEVc5hquN1/KofSBHYAcL7C+Ja//nGCSSyPQd8dU15V1hMzA4ts8re07eEPFxkozpGMviDLO5w1iDuKb0nf5A3V+5sFhakMzL4Pdy269m43vuUXU+teop0q+nSt2/TOTqd524FU28ZTpTgR37fdp8brdKA5PrfguPJfTHWLBoo6o7mQxEcyEyLIypQe713klLK1fp6IJsKw1GwT9CJI7PQppIxCGqPKIP9uDtVNvKG0UcX05L+L4E9k88j5i7ZuCvb0P92bbMLmld1Thsx2OdGCbCDjdnDdgAJFFRDSdZmL8GbaZHRNhojQ5Q0UEJrs7P+ow+2pfl+mfxn1H8cALc6uceC+MpZqyyNp+CEzDL/gVdugmuXm5BeFKOTwomn5aZ5uZ/2NcobHyym9DyLqFhUjalN3kaR4eAGRBy0ey+SYuaSHVbLLwenKw2KPWQeitadbjOyFowwFOU5ZTnRqC5JedBLq8wYCGqdihmT0+GfvL8KMU8bE2AUSXBz4RdUdIPyeqXdXZT+L79Xf0T63FrZjSTP8AqyZh+0xrNhVycWFXGRPN3GgfisEFI9+fFSWsMqqn+1g98btMfQMBixd2H47ZXWjgpbULHVjbE7nGiaa4Dauwr72SuGvU608B2EZcgdF9SrpXCjwarJz5ntdAc3erS/I=--cnVnlQsoPPSaGR9D--QaXFsqNdQvQ/Hw7vpmCLuw== \ No newline at end of file +FxbkzH2oYkjPDgyfx3mVfNrMmRokS1Xl5eMp798p7nIanaUi2QUmUIJPsOZ+Ki4ZyVOGo6C2Lzt+lXRx5JL9y5ymmlT9jhYESv3we6QaoxevIByaaFLT4AiJ6ZzZirvRyp4su6mfuNFmj/FTV22PvQ3NXrz4H/YrYPw8T6t7pxGsXEUG0rhDw+L0I4rf4Ed+KobW2NjXAwih1U0WPKlQaYpGJmKD76hINoC5wvNNNs/3EHABWKOEpQH3JvUlqecpkYG1Ihd1sr22NXmyLzlXhuAYeQYSw4vCuxuvYmWjflDbXoGq2KyA9SbJXvRYylwjsFarNF6TEgr9geiim6XlvmEHNIGaBUYKIfQB5jV4BZ5gOf9Rntv4rzZmgJGKEynk2LGk5588dJQrE0WMSCOwJhxldQC+Z6GQe/0Eq9fO6euYs/WgdgG8HoObaHraMiQ3YK1qfsy9nxb+qCVKWWt0UaeH4B6NC+V9rmg9A8gZ1o7+NYJSyTQq0JDAOG0qCl0xikZLxqwXOgRXjWgO4Fvv91+8RwEur+1HXK8ejN6w4rawndFn2p6EN9lmq4xyd5WVT+uKt6nQ0G/yx+Zr1d7kc1VriXTgz8Rko6WfAHz3bAv4soNEqF1nluDFQ5t1Nldka8QT8qrKeNppCkc6i7At4a1WVzHY+/SDjkni2sY/q38i81S0leFzQ5ga1kys5I2Mgia3gYqtJSKEk/wdIs+rMCKO5pqF2el15v1ssvYhZr2jjlNT2RtEWEYkffDnfSa1qa58LSCZ0WNK2nT9yyO3C47q8ZqiVOk8+l1f+gevNsPLSRwjbYBuQt/rZSCAGuMliQsr2OLzc/VhEDBSFMiaAHR8YJWyTipi9XaN5CdjNjFLwqc/3HyVeVmO7joOn9HcPF6PQu49aNtrM1YUSaX0zGuEDK/G7os3gY7imGGUGRYt1YVOqWFf9J0xg1JqgupI3/4QRWQOkFGFk/aWgJNd4SdthAT+1xwdFjp3FYQ7zWvzLzKN9236TjJ2DRGD94LkdkeljlTWdStBSS0CUAHmYeuObh9reqpFjuhYcaD5vs9F3voBT5pDk0sAv6Y+F3oC5c9JamkR2XD5Hw0x/Hc9P21KTjpXUITHPV3PJPqajylUvC1y6oNZxTSPdIko8EU0LjdozsMqgdzA4nGVmDNYu6XxMEW5/tR53GVQ6krhUNvGN5Xhr/l2NKtYlubperonX/tOwIbDR7xt851+DAS4CLTlT1FVbTI0yPyqd7Uxiq6SA1tAcVKLkvUIajagZfeGum7cG4Cvu8FGCcvvcm8+xu/1q60Jni6J7GV0inCsF74TEXLoasOROql+UkwjMz2zY4++6o3EIxgo6ESGiesPbA2b776Mc1pXPtb/q7YftRZLGXRz0fYHjFkHCx4NgAukvV65Tp3mNxXEpjF+R6DspLqEqOkk0oLc+S0UCUW1uY78rwN7+V/N9rJU1Egx5dKFWhjr3eP9iF+3thN1MaHjg9CmB7dVwC+2+bmAU0JIz0UAF0PWdvlDV5S7AgFYTAa6ff48A7u7uPR2aDQZfZgompI/K3hfIIyj66m3Bgr+Ntjg9eAFdVNL/oYq2ONjXLXvOjj2xjVYNezZdQtxR+wImdI565S3LDjhg0lxbOkLmnhXIGyngDLPcy5QaIbtSkcnZauElLjCF0XwyHJjD/QCxotDUoIGmB/SsqgUfz8JzXSdhk7I7UnD1OsAzj5wqbuxOS5kPadUFZT55Lp2kirC5voa0VNT0tsAhcdm3KraZxhEwvNnj6U/6prBUpmhd9riObuEuxuIe9XQQgXNl+hULXxVetZ2lAPM4ZrQeJkh1OXKGDbXVAsGyhJl1Ojj42P1Vg7L8BCk76bKahgJDs56egI2DjkLeGJkWcnh4f2la4KNWhYhEGdeMKAvEF5dKA99uBahUDPd9wF8OaRHVTmIIHFKlNHAZ2Oy5NJV+m5JYUkHSfhKxaBnH1uUYxJOEwEEbxjlH4Lg6YNaD+3eBbP9PErWd+rn/j5ZmJwNryY7jPUt9BNy61wrfCp0Aww0mpq9M9QcxZMtlPd2p2fLxoSSYqBhWSg1CP2WAsZZPJpSQveBdM3fcXiKDKuVkg9o4uutg32WgjCzNMrZR3pTI5bm9ZKb+Fq4IdXAjILLLTclyLYDUV/VKr4NhlIcZ8L4Mos3GqrTKx/Pbe3kcOn+g2yo1+Lq+0cWDo22Coyg0BdOlGf4y6os+Frfgt+Xf8TyiHk1ecmy/D73fzGF--pR1hfy5qn2BKDerm--YWGU6sMyb9WOczKW30enzA== \ No newline at end of file diff --git a/config/credentials/staging.yml.enc b/config/credentials/staging.yml.enc index 0a007e35d..c9aedb5a2 100644 --- a/config/credentials/staging.yml.enc +++ b/config/credentials/staging.yml.enc @@ -1 +1 @@ -9JD9jNdU7DCiqe0LAHSWFuB7ANmPinU32C0Fv1YkQhItRWtWKcGo+fsbv/Z/T2UbwKB8CMBRM2zwL4sKedcWBw+uTACeA/86k1kQJXuLZO/X3XuTAf2jOLLLo11YLXBYthN2tkXl+qXH2dyOvZxjSsAc+pKKe1VZkl7+XIgikEgXZw2lSjf7RV9XS3i/QwO63XkedHuTbLTSPh4U9pCsa8oFALQzVyenBiLtgi2PIbFXdYpzdd5ZlDinWGFIz7rg2qIe2s1q0bVFjMSCi+7n7yLtS0yZy7jYVfvXBh2bOrfKGd8L+9akOG1nhWu7FaY/4wxxnlaTeN9uBqZkbVOPpecE35MYmjhpuw+PCaSiussADICqutiSPkqXpUtZHPYJ2EGcT1p6aRBU9ZQzs2eywVOp5rcbuKVVnUdEb6JLNt81OLiG0Mh3efq2q9bDTT9ygBReRqFVNr/sNq4wWPTb1dBbua8q44zJmDzL659mJZWlyPZjjIga+vrq/KfYQ7XIluZk17Fd4ESJ09a8AAYvDF1alzWsEs4ne2/SZGZHlDczrQEb4kq12h2PwKx5PNxdJQudrCR3acp8D6gjHr0XOGHcbH6jwaWe2VLXp1ovx4pf6su9JsvhJ+2wdPyeBof4vLGPhakScor8BVefVo88yYGUFvXV43NGIwbHlJYlUqv60jV17stiwKhVddUDyEdL34DJqCMYn1PuEsvAIKhVVKKPV/MPZT2PXto0QU5eD/167caa5JFMSYxNvUfIrgRAEtvhBJlnSB5psKi8DVIWt6rFPHDQoykVl6Ow5tkJCheXnggsrZX/a+SzyC6nqWXf9Dw1p1d7lIaaH+bSuiugBZTAZj5MmE9t/yOJMWmpN8+OXf4CErlcFIlphg3EBP8TTK8A44dMEzAvqABcpyCAsBi+spOg55lpmJAdbWwm+OtQ1fgOFS0CrShCIMs0gAOAaZQQKLgVaWHx93y1Fx0e5qP8B+CzxKBjZY1YgCTfPORGD71VZhOhA0X7zme9Ot0Y1DmQ04aQvqRmACrEN95pyqYZ7FWFFG1Mzy2VGb7INpeiXBaWPpaoWCdOkh7SBB+Foj6klXY1hbB+jPaxP4jqsOMheVXBLMRcJCps1Ax+mTqiMN9OHi0ibT2kGS+Ir/CuLtHTPTMD1mkHQN4PNH7HTemCdk0Fi87PAYtdG/f4IqlFAvPI5VSp04wDv1vN9iSxSVOjO6n2DULcAjhT22DHU87Lb2vsvzRNG88GoY9gGmOKiEUxkwKWV85/D3MzV376kY6R699jfsh7Ms2GiyWH5fKD3ZqS+LdN7+0bkarPdKYqtBaB/e2Gsx1YHB1l8ZW3IpXONA0s8gvH+OxJg3xNaH13m8DZKPK20ZOZWdW+3VIF/54e2NhS49D4KXutuo5xB2YGSRLpDSMoIYscJID7cc+VK2Gqmf07AlvpmUYW2S2mO5dgzu+KOPVzBkTQ+rhUsthEdUIpQXn1y94SLlxgJcMlA3deqXLfQZwKG/mNAuqmvx/t5xkMyvhz3OdGHek2Os6wesQ/t4TqkUs4iY6WHolZ0TARP+hRDRtLMdNtwP7V0vSfWSvrZut9UypfEqKlrWtiPIgpZlRaro8uQkoaweTpPR6CQJ6klnsoOQj6B7pbscg9E6X4tM15Ld8IogItn9Ted5OyxwroWUc=--ikgyIcb4z3MncQnj--HZOkrCFarVAis0DMXy0oaw== \ No newline at end of file +FTAulMWNx+44ChgUrtewtLpdQTwvfYPYVG/ONsJmG4TV2u/CG3d+vmdPrHVQH7Kh+iD/d/73T5O0pRxFz4cFHFjLA88MYDEDsHDn3ANi6RQaGULIB1Hu71y4m13AjxARNtEYKdHXQHgCfLxwzimKrSX4QoHgMyQHwhjS+lFFwn9bsJixxsNrmByivfRCQ6ryV6nWIrYfa/QnLLhlUtL9q+aNTXtCeUljn/Wqa/9oKuNCPJ6Dy4XGlIuHW5Jk2ET9bx2KIN5lBa0CaZaVo6XOs+lrVzyTHtodY2uiJPVA4b+0x8sqISXfqIYd+wULJApGN7QEvWjm1Sgw/hPGCp40rvd0waLpU2R725eS+kwWoZDyKL95v9ygDDwsXQzUxdts8OZyeoD6lJ5roIFyWld94U1adR7bBS4oX+RuOIvOjtyxfMscdkDzUsuN/ovb/uaY6xAFZklzU+zV7k/Z12VUFZGtoLUMU9+KG1Baz29EsH6AY2xfQaUi6y+oMGwA8OoYGj5Vo0i8Y5NOXwd1nJqrTnBRHhAXMsIe2h/1RINXU4rcVqtdl2PzeirvKZyvw6rKeP94aVsEChzbJqS7adsamKDai4m7ORF9WOeQC7lSgBu4KbCWgO3HgpPE0klBuj68CtpWpyNldzdq/TW/6GoyNDR0kkYWkM0fM7qDD/AbTXX/z7aomujr3cKwFPdAF5zn4IXsBPtYpxW093B5YiJbAY8ZG9B5mKHutj+t9yVC5EhPD3XbLkK2/+prHd5Qw+uBZ/G1XIN/fwfp/UgHOVNn5fnDOrHvQbvpnIY/Z/a5dwzGYx7aJjIx+Lh4BN/q7wSgINUoP3F/WMPLTuknwMmeXM9Wu9CnXvCd1ntQeoojh02THo4bS5O9Vu2vq1tbG7hXCMG+Ab2DoZVEFb7lNh1sMcUayw7wMFXuga3iyMXBigX4+DiAFaCaikdQkr2XJwNS7Xuw+Y8SqmuzJvlamFGmFsA1ljg8FT6TTRt6RIyLWJR5wpW1Xx4UMjOxP0gozDeS1zR5kMSLt+GJZQlZw68lKvv0kwtFdxRYOptnlDJhRPdLmPqC6kykCYslR2AO8zzQXEAbOKZBf6h3jzGcL0s3xDn6MxkLWKRs9xxotNEA25Dzp4spBRmqnrEY8gIiNzH8vvo04M+jGVfKXnuObCX2BUgGR9Sg6pmjJyS64nIVgYY5pymBwFWM62uqP2/ELdo7hzThbyba/SqB5n/FSELhN87bLVoLzyeoOO+ed2J2RNOKh2B0e7C41cBPvlCrmNV9/EXZj1k4n6O7enebgJzwygjkOQ44UMzqoQqAxxomOo1DCEsbROwkRYYQSIF9UbG7KipVgoYn/8arU2tJq9D7xp2fe1/pBApPSOtvH1Cvn8XiQAD8QTYVrT8Bb/vgJQvYMy9+HBwseNbXrdWtTX8+xVvjQOuUPUSLHAQWENJ8DCc93DfxRm/pDOssTtjKcIFMtTGolYnyuD+42qxscU/Mqiahdg/bC9iMsPE6kFgIoA+DacDWaMEYg2gNaq4fgk7tlZqHTL+e8+nwMbUmyib7czdywNYgDWVUSSe/jjcCUhtlWzthYTd38uFz0LWqlz4lbaBnvwhTCr6LZWExNdyMKI1Po82MoYZaBFi3LjTaK0gDoDc6TU5QAydA2zxW3yycVo1yg5X1xqfnJ+u9ZyBab62HqAMaR+lyiUaVe84EaLTpLRaSwO2ilojeoawCf7Y6+nOZbPhfuqI8wc5eDlQHpXlvCkkPQ2KIUDfle9B+qehaL3EwE4/zzQQ3fSEmHP13bWvL+Q/39imAAC0HbSfOhT2bnoCgLNY5O8GXf7ThIgqTAFrFrvm0y4NMCj4ML/RdWhH7DYpdW7+5hN7arwIM/kU9EbuvyrXRSXcNI0vEi5gunixIz++Zb5GLnvsje1dKJWF9/cWPp8Qf/2s+R8RChEeOQpyUS7KYGS51vSYE53pvxIpAiNaSXN2zbgdbwj0MUxncNlDtaHCPi8P1/MpsOXohYBjW6pxTeEeW6DCgtPCllQe0EP7FgUQ8G5w/sjY3uVrHAtVHiAWfQkT/1zMCd5RsRtnkJAn6+RxVQIqJDOGUNgKeLSOc2RrVOTxlk3nvcBwhUR86r4RIXlaeEQeMGKHrPk/NDWiubpdhnE4pJgmtdw+WxqgTwosGnsiEb9lAJ3FBgavpq9mHIweb/EuWYI9lGgy51yEVd6qbEegifw+K05HdiUxN5slvoqI1yK1h7doPn0ZFjllgv2JawBj7xoFS02XUNJHEbRRUwFeYLJ3rjF8bcqf6YKtLCmUqBdQaLB3UIy7QnjjwDhUZ0urejRKfvha4I69qga4=--3vwK8dvGCDo4Bq3H--IREQaAm34LMx0SQuHy1fVw== \ No newline at end of file diff --git a/config/credentials/test.yml.enc b/config/credentials/test.yml.enc index 997d480be..26ec8c3a3 100644 --- a/config/credentials/test.yml.enc +++ b/config/credentials/test.yml.enc @@ -1 +1 @@ -lHp2jcmiXvV33gX7o71HcUGSGUsu5Cur7gmCB6egk/Z7JWFmKLmqqH6baCEWHUMAZGsF/6P5mho9hOuhnUb5x4bMYi9k9wBnGmj/lvR9IdNcHrjZEpzWbDIVISY3rKmvFK58XBitqZ77ajhrNgLn4i4qpNU/i5q6legfMv5mfk4AKN/+hMnApCf86mGpQT7vW8GTc5Vwy3q0nE2rYuIQxGKrwGzW6Jf68OWBA0+eSj+6ELGLu0wF6CnQHYZ5yFeS8MXHMvfjH5LLc3GVVSlwKygq+3g5s/2BPbRSr1rFN6hTBw7z7eGp81FhNnoslyc4anHND6jxP4XLjKRvExlzLxZr5iLN6UoDFdAPZ0YzEJusLVrW6LHpTOY5SmcrxeYR+CQuurbe+vRmlu4Ysrq19Byf80QQqv+mUrxnr8AxnJil79lgLJ72nHilEh/DII6GCFEm+/cbkpEIn7TOU2gcJVDHWa9w0LWEQm3PNvuOebReW8pDDb6VuuoCUB3vRC/qVMaYmKO6FNpGv0C8Apa7go4xDsbznCSzuWS3nLd05sKLFU5lZNeysZhqF/uzO83EXTUUZBXM/TjIunY9D74Z8wn6cctt3aNrH8sGhdIvd1/siyZqaV1xe2igsyktMRlkO6DxPd4fOWDxNJVsamoApg0ed4xScnJa3rdExrRAkQLx6LsP/PQjXZa6BjIRvltjQ31oRJr7GYxVG9wFE37Q3x9GNCPjEy0xoAL1gwce8jB9cJbuQmvRpGTK6zCa8nqwvckz8K+AwLTbLRVnwsAo9BP8KZpfa99qI11nGImCxCYSHjTxaAhlObcofsZJZeQmxtB47vdZXWqCazw0UnJg4ettS/wPDI9YwRPJYOzs2P2XyPZGAB7CDlkoE9yQg1UQSrjI66Rm2IUy88yOqRhLtwuhcYSofpFNcAqAghHi8xsT5kmKA1VG2ktzbbetcmGX0JdXq+n9KSkrXIoM7EfD3BaHVh7v5R/nPf21J840BBa9JQb8Lqwz22V2LU12rNNCkr5oIeDypzw4WFspgZ55wTWIfDvLd9lavROC/7E25AKS0FVUnb//F2gZJcLCi4bI9J9KVE5Cax7Np2PWFvQcLvi6+ZMvWt0gmJzP/G1j3nDzw2oFlZWgw2zrQWGidsmjX8X/4plaXKgqZtyXW51/GlnsqIN3hE6NnCBp3F+3KJmPGqAXakSkXRTQ7gmuIvlb3eA4u01D+QFBIVp5Dn5u7mO04cvhs4volbF1P5etuFtTQMZa997HJWs6JKbxbD5dXHirreWx1ePxysz0R3LP8YbBsrvT9lR8JFsC3t9xK3CZGtMsy9bmsazrt80csxlB+BsyBFyntO2wdhNpzaTNAgqmQOitv1xy8YkE5SaSqRitNlvxed8rZqfoE6L56wm0Zrt9OtJxe14SW3Wf+J8dLdZfkofS9qTg42M38uQDatHFnnrcsON0/w5qMcZ7dQ3Uh1+iZ8VtiCZk--ofXTPPvApMx26e85--KCiB/DR3eRUz/seUFc5fgA== \ No newline at end of file +YjmNdlDDxPQa0FD+f39/FXCtYlrsfgE3s7ahezgeZpVmQBMAw6g9TZEYclfqeawN6mvSwmmUVOtg50/fGrLelWtZipZM34dC/s+2sEJk+jsJNon8oh2JiKmNBp+0/d/2EnpgXsSgxcq8s8x5uRG1dVyF0PsNvZzW8AHLj1BR3LjCN1BfFzGjUXFzMOLN1ULqQvNvYmdKcVLqlQAOh5G9OvFFPhY2IOfEX6zuYlpgM3F3n+tiySykeqhXSL0KLRl+xe1XxS7LIB716vI1fegQxhVaHqsv48uS+87ACSyexsMioDSJ/sW8NUQY7ggRN8aJERjIjtKrEA6ElAaEvHwGXQJqmYlqZKCzer+X8zt7xMrXToO+sEvBlAKJ1IRFixg/aWai1grMBvlnEKGKRo7N18d45JGkc2wSaEUwoRDLA0AIqXz8O3ShUpVBhGmiulT5SpWbvCOsovvTC7kqi4645W4XZLpXhBAPWqjMNhKdnOSI4pK2y4iaOYgMIRVnRpM/q9Uq0Kn/+q3VO9E6CsVofni5b7n3LNRenMNZN1R4D6LBbTZrtd+zO3W6KrD46qj32aAmU5gNJoxnGaWebcH6Csibrh12MjQfAaLnmCzqy8q04YYSN0OnFhI4LDCiZdnMTbf+/xpqMfMgEbXE2RX0TvqzxreN4vqorIlEpw9Q9bHqsfkxC7Rpx8Kr/Hs0aJ/ZN2vrqVjHD3v4GZn3JaP3UtZIXQf54nBp6fSaG533V1sjy/Q7R15k8xf7h6c6C4dkbn1osIqVI1kmGk6wkDqAz4N4BWYZC85AQ8oOqEyRRe63dWPaAhaulPcszka1nuC5LLdfLtTLrgLk0hypjTN8VA6rJ3TLMcOqToDSGCGZew+dyfKdUXFiZOm6na5OctmzJYCyJa+DplHGAN709aNT4phkFP+hcX/VnG4c0OrFVyZsPlsIbcnNfW4pG9OJyHVUGQoLXZsPcwTSX4VlVPbSekDYjO+khEODW5MVqXc/V/uxf1/Qhou9wsImsEKtLEiBW6sR6JvjyyiVlnFu5CMXphEluXzmw/k+ClwRpQ6iIhx0Ydj2GoyhtJ24ebCQmMvQkXjSd7n2i2wWE7D9eOAxjPnzCvMIrYVQ/rI+sVA9MkYyl9bT4aVQq6A5KMnG+yLSHkDwaDft9BPc8ihBJQY33Sm6ZM0BnxG7qDgIY+jY/9uVVn3qMxDR75M6gt6EHQFdI+uO+lNDXe27R9nXLR9+3crHD0Hd6NULIrLlPrLGegD9RwY0kNRPl9ovo698sKwS8vueI0XUg7qVnvNkTJiCUObTHlsU/cocBRtD5w65I6ClQ6r0I83u/98odS4uJOseqZxiDI+QpBQK/J4aI513QdFQiUcAp/SUGUGjodMOdi186ShnrwnD7hgT9M2Asjm0lSi9qtsYaRsm9xLJeRAzxjgbtpYlAJizW2r0LMrkEOXeqB5f2xpoz6h3IiBf4u8RHjzbPF/LYKwejK7AA2T6SLvTo1f1CXuoglE4b4yG1UbSQEmFEzzyfHsuK6ULS2i7ZIrpqTx1+uWXKhY6XfvIxY+aHzr27FXxVLrbhLj6y2EgeLao2THw+PRqGdWMizdjY0NGP37V96dd33QjL98UJaQbb9J0bAxzhvOThd4VeTxtFl/dCa0wLHApYHfGYdrVgIjpEC0xMd/mennJz8chTm90xPciKS772UqewGZiUCFvFQ37d/bIOr+fyikFbYfM3+yMbpy183iBg1xuWklocFpZvRe4UMo1M8xCSHvr1T5gtOxC3pu4mb5NuzmH9KT1Z2Y41TRjy9jcS4JaOG4mDvZP75q5EmTkVXDopbdIbyCf77gCCmiVmRjCOI1igzwQyh96iDDDbw4RluUCZPjgEXEVj87d5VtXhjdDkqWLekEh3oCchboNShsKAUdkk0OvkAzXq6LDjj3VljNemVAb9krhIawXm6oJiBM9rQSnN22JQjfvzAIhQYOhp7/8jJKRbnZd5M9rcJNf1MxGxnHvxUHslWRN0SzzCMuihrAc3ZmcfzHBPPwGIgCJ7s8bgF2zBD8rRQvbNBxP35rF/zKvTR4npt7FwX37DjCjXTTtmYSQvdcRzUUBFpsA2WLBCQM/FsdTx2l8K8uRCxgYdaZbCQZhPMH8FIYW3aNdqxUdWETdMagBA2exnNJO2IvTg2fe6Nrur/bzorjhgoi7KqR13RypvOQYSJn+JIHrf3EIRy1pH3l4e888/928Cv9SvF5PsfIzCxW5VW3lISQW/LDp+W4ietq2RWE8EU43byA/vtHiVRjZ1bF23Hiiyq9XWchS--1iVrN2uZYhSZST7Q--wTX5GsuCHbFXF8Ki2bYStA== \ No newline at end of file diff --git a/config/data/scopes/entreprise.yml b/config/data/scopes/entreprise.yml index a4cbff35b..05998ae27 100644 --- a/config/data/scopes/entreprise.yml +++ b/config/data/scopes/entreprise.yml @@ -19,8 +19,6 @@ - 'bilans_entreprise_bdf' - 'certificat_rge_ademe' - 'conventions_collectives' -- 'actes_inpi' -- 'bilans_inpi' - 'effectifs_acoss' - 'entreprises_artisanales' - 'eori_douanes' diff --git a/config/datapass_webhooks_entreprise.yml b/config/datapass_webhooks_entreprise.yml index 57d11f123..9e2fde121 100644 --- a/config/datapass_webhooks_entreprise.yml +++ b/config/datapass_webhooks_entreprise.yml @@ -1,14 +1,12 @@ # Check https://github.com/betagouv/signup-back/tree/master/docs/webhooks.md for all events and their details --- development: &development - created: &created {} + created: {} updated: &updated {} team_member_updated: &team_member_updated {} send_application: &send_application emails: - template: 'send_application' - - template: 'send_application_later' - when: 'in 14 days' notify: ¬ify {} review_application: &review_application {} @@ -31,7 +29,7 @@ development: &development to: - 'authorization_request.demandeur' - create: *created + create: {} update: *updated team_member_update: *team_member_updated submit: *send_application @@ -42,12 +40,7 @@ development: &development test: *development production: &production - created: &created - emails: - - template: 'embarquement_brouillon_en_attente' - on_update: true - when: 'in 14 days' - + created: {} updated: &updated {} team_member_updated: &team_member_updated {} send_application: &send_application @@ -55,20 +48,12 @@ production: &production - template: 'demande_recue' on_update: true - - template: 'reassurance_demande_recue' - on_update: true - when: 'in 14 days' - notify: ¬ify {} review_application: &review_application emails: - template: 'embarquement_modifications_demandees' on_update: true - - template: 'embarquement_relance_modifications_demandees' - on_update: true - when: 'in 14 days' - refuse_application: &refuse_application emails: - template: 'embarquement_demande_refusee' @@ -76,12 +61,6 @@ production: &production approve: &approve emails: - - template: 'enquete_satisfaction' - when: 'in 30 days' - condition_on_authorization: 'not_editor_authorization_request' - to: - - 'authorization_request.demandeur' - - template: 'embarquement_valide_to_editeur' condition_on_authorization: 'editor_authorization_request' to: @@ -146,7 +125,6 @@ production: &production to: - 'authorization_request.demandeur' - create: *created update: *updated team_member_update: *team_member_updated submit: *send_application diff --git a/config/datapass_webhooks_particulier.yml b/config/datapass_webhooks_particulier.yml index 3bfa350a1..79e4d6cdd 100644 --- a/config/datapass_webhooks_particulier.yml +++ b/config/datapass_webhooks_particulier.yml @@ -1,14 +1,12 @@ # Check https://github.com/betagouv/signup-back/tree/master/docs/webhooks.md for all events and their details --- development: &development - created: &created {} + created: {} updated: &updated {} team_member_updated: &team_member_updated {} send_application: &send_application emails: - template: 'send_application' - - template: 'send_application_later' - when: 'in 14 days' notify: ¬ify {} review_application: &review_application {} @@ -26,7 +24,7 @@ development: &development approve: &approve {} - create: *created + create: {} update: *updated team_member_update: *team_member_updated submit: *send_application @@ -37,12 +35,7 @@ development: &development test: *development production: &production - created: &created - emails: - - template: 'embarquement_brouillon_en_attente' - on_update: true - when: 'in 14 days' - + created: {} updated: &updated {} team_member_updated: &team_member_updated {} send_application: &send_application @@ -50,20 +43,12 @@ production: &production - template: 'demande_recue' on_update: true - - template: 'reassurance_demande_recue' - on_update: true - when: 'in 14 days' - notify: ¬ify {} review_application: &review_application emails: - template: 'embarquement_modifications_demandees' on_update: true - - template: 'embarquement_relance_modifications_demandees' - on_update: true - when: 'in 14 days' - refuse_application: &refuse_application emails: - template: 'embarquement_demande_refusee' @@ -71,12 +56,6 @@ production: &production approve: &approve emails: - - template: 'enquete_satisfaction' - when: 'in 30 days' - condition_on_authorization: 'not_editor_authorization_request' - to: - - 'authorization_request.demandeur' - - template: 'update_embarquement_valide_to_demandeur' only_on_update: true condition_on_authorization: 'not_editor_authorization_request' @@ -101,7 +80,6 @@ production: &production cc: - 'authorization_request.demandeur' - create: *created update: *updated team_member_update: *team_member_updated submit: *send_application diff --git a/config/endpoints/api_entreprise/10_dgfip_chiffres_affaires.yml b/config/endpoints/api_entreprise/10_dgfip_chiffres_affaires.yml index 774a620ca..48fe097b8 100644 --- a/config/endpoints/api_entreprise/10_dgfip_chiffres_affaires.yml +++ b/config/endpoints/api_entreprise/10_dgfip_chiffres_affaires.yml @@ -6,14 +6,14 @@ perimeter: entity_type_description: |+ Seuls les chiffres d'affaires des **entreprises qui vérifient les deux conditions** suivantes, sont disponibles: - - ✅ être **soumises à l'impôt sur les sociétés** selon les règles des régimes d'imposition réels, normal ou simplifié ; + - ✅ être **soumise à l'impôt sur les sociétés** selon les règles des régimes d'imposition réels, normal ou simplifié ; - ✅ avoir **transmis ses comptes annuels** aux greffes. ❌ Les entreprises aux régimes micro-BIC, micro-BNC et micro-BA (micro-entrepreneurs) ne sont pas concernées par cette API. En effet, elles ne sont pas soumises à l'impôt sur les sociétés mais relèvent de l’impôt sur le revenu. entities: - entreprises - call_id: "SIREN" + call_id: "SIRET" provider_uids: - 'dgfip' keywords: @@ -35,11 +35,11 @@ format: - Donnée structurée JSON parameters: - - Numéro de SIREN de l'entreprise + - Numéro de SIRET de l'établissement faq: - q: Quelle est la définition du chiffre d'affaires transmis ? a: |+ - **En régime réel normal**, le chiffres d'affaire correspond au montant porté en case FL du [formulaire 2052 - compte de résultat de l'exercice](https://www.impots.gouv.fr/portail/files/formulaires/2052-sd/2018/2052-sd_2117.pdf){:target="_blank"}, c'est-à-dire, le total des chiffres d'affaire nets de France et d'exportations et livraisons intracommunautaires. + **En régime réel normal**, le chiffre d'affaire correspond au montant porté en case FL du [formulaire 2052 - compte de résultat de l'exercice](https://www.impots.gouv.fr/portail/files/formulaires/2052-sd/2018/2052-sd_2117.pdf){:target="_blank"}, c'est-à-dire, le total des chiffres d'affaire nets de France et d'exportations et livraisons intracommunautaires. **En régime réel simplifié**, le chiffre d'affaires correspond à la somme des montants indiqués dans les cases 210, 214 et 218 du [formulaire 2033B - compte de résultat simplifié de l'exercice](https://www.impots.gouv.fr/portail/files/formulaires/2033-sd/2018/2033-sd_2094.pdf){:target="_blank"}, c'est-à-dire le total : - des ventes de marchandises (dont export et livraisons intracommunautaires) ; diff --git a/config/endpoints/api_entreprise/12_bdf_bilans.yml b/config/endpoints/api_entreprise/12_bdf_bilans.yml index 94ea1dee0..5f5f89cba 100644 --- a/config/endpoints/api_entreprise/12_bdf_bilans.yml +++ b/config/endpoints/api_entreprise/12_bdf_bilans.yml @@ -9,7 +9,7 @@ Même si la Banque de France connaît un ou deux bilans de l'entreprise, ces derniers ne seront pas transmis. entities: - entreprises - call_id: "SIREN" + call_id: "SIRET" provider_uids: - 'bdf' keywords: @@ -46,4 +46,4 @@ format: - Donnée structurée JSON parameters: - - Numéro de SIREN de l'unité légale. + - Numéro de SIRET de l'établissement. diff --git a/config/endpoints/api_entreprise/15_urssaf_attestation_vigilance.yml b/config/endpoints/api_entreprise/15_urssaf_attestation_vigilance.yml index c7ec70de6..0fdde6027 100644 --- a/config/endpoints/api_entreprise/15_urssaf_attestation_vigilance.yml +++ b/config/endpoints/api_entreprise/15_urssaf_attestation_vigilance.yml @@ -17,7 +17,10 @@ **Ne sont pas concernées par l'API :** - ❌ les micro-entrepreneurs qui ne sont pas en profession libérale et ❌ les artisans-commerçants. _Ces deux catégories ne sont pas appelables avec un numéro de SIREN_ ; + - ❌ les artistes-auteurs ; - ❌ les entreprises utilisant le titre-emploi-service (TESE) et ❌ les associations et fondations utilisant le chèque-emploi associatif (CEA). _Ces deux catégories ne sont pas appelables car elles ont des déclarations apériodiques_. + - ❌ les entreprises qui ne sont pas soumises à cotisations, comme ❌ les entreprises n'employant aucun salarié ou les entreprises radiées. + geographical_scope_description: |+ - ✅ France métropolitaine ; diff --git a/config/endpoints/api_entreprise/19_cnetp_attestations_cotisations_conges_payes_chomage_intemperies.yml b/config/endpoints/api_entreprise/19_cnetp_attestations_cotisations_conges_payes_chomage_intemperies.yml index 7b499f28a..111c9c273 100644 --- a/config/endpoints/api_entreprise/19_cnetp_attestations_cotisations_conges_payes_chomage_intemperies.yml +++ b/config/endpoints/api_entreprise/19_cnetp_attestations_cotisations_conges_payes_chomage_intemperies.yml @@ -5,16 +5,16 @@ position: 300 perimeter: entity_type_description: |+ - Cette API couvre les **entreprises exerçant une ou plusieurs activités entrant dans le champ d'application des conventions collectives nationales étendues des Travaux Publics et du Bâtiment** : - - ✅ Convention collective nationale des ouvriers des travaux publics du 15 décembre 1992 (étendue par arrêté du 27 mai 1993) ; - - ✅ Convention collective nationale des ETAM des travaux publics du 12 juillet 2006 (étendue par arrêté du 28 juin 2007) ; - - ✅ Convention collective nationale des cadres des travaux publics du 20 novembre 2015 (étendue par arrêté du 5 juin 2020). + Cette API couvre les **✅ entreprises de travaux publics cotisant à la caisse CNETP** (caisse nationale pour les entrepreneurs de travaux publics). Ces entreprises entrent dans le champ d'application des conventions collectives nationales des travaux publics. - Toutes les attestations sont disponibles pour les **entreprises en situation régulière** ❌ sauf pour celles qui règlent les cotisations dues à la CNETP au travers de l’URSSAF dans le cadre du Titre Emploi Service Entreprise (TESE). + **Ne sont pas concernées par cette API :** + - ❌ **les entreprises du bâtiment** qui relèvent des [autres caisses du réseau CIBTP France](#caisses-cibtp) dont l'attestation doit être récupérée avec l'[API de la CIBTP](<%= endpoint_path(uid: 'cibtp/attestations_cotisations_conges_payes_chomage_intemperies') %>) ; + - ❌ **les entreprises qui règlent les cotisations dues à la CNETP au travers de l’URSSAF dans le cadre du Titre Emploi Service Entreprise (TESE)** et dont le système d'information de la CNETP n'a pas l'attestation. + + ***️⃣ Sont en partie concernées par cette API**, les quelques entreprises relevant à la fois du secteur du bâtiment et du secteur des travaux publics (environ 50 entreprises). Pour ces dernières, il est recommandé de faire systématiquement un appel aux deux API : cette API de la CNETP et [celle de la CIBTP](<%= endpoint_path(uid: 'cibtp/attestations_cotisations_conges_payes_chomage_intemperies') %>). know_more_description: |+ - - le [site de la CNETP](https://www.cnetp.org/category/affiliation/){:target="_blank"} est une source d'information ; - - l'[article D.3141-12 du code du travail](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000020572124/){:target="_blank"} définit les entreprises qui sont tenues d’adhérer auprès d'une Caisse de Congés Payés du BTP ; - Dans les entreprises exerçant une ou plusieurs activités entrant dans le champ d'application des conventions collectives nationales étendues du bâtiment et des travaux publics, le service des congés est assuré, sur la base de celles-ci, par des caisses constituées à cet effet. + - le [site de la CNETP](https://www.cnetp.org/category/affiliation/){:target="_blank"} ; + - l'[article D.3141-12 du code du travail](https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000020572124/){:target="_blank"} qui définit les entreprises qui sont tenues d’adhérer auprès d'une caisse de congés payés du BTP. entities: - entreprises call_id: "SIREN" @@ -33,7 +33,7 @@ - 'fraude' data: description: |+ - Cette API permet d'obtenir au format PDF une attestation délivrée à l'entreprise sous réserve que celle-ci soit à jour de ses déclarations et du paiement de cotisations congés payés et chômage-intempéries. + Cette API permet d'obtenir, au format PDF, le certificat délivré à l'entreprise sous réserve que son unité légale soit à jour de ses déclarations et du paiement de cotisations congés payés et chômage-intempéries. {:.fr-h6 .fr-mt-4w} ### Exemple d'attestation PDF : @@ -50,10 +50,31 @@
Identifiant
**Avec l'identifiant du compte utilisateur France Travail** : Cet identifiant est celui choisi par le particulier lors de la création de son espace personnel en ligne. - ⚠️ Pour utiliser cette API, il est indispensable de recouper ce paramètre d'appel avec l'identité du particulier. [Consulter les CGU spécifiques](#api_cgu). + + {:.fr-highlight.fr-highlight--caution} + > ⚠️ **Avant d'utiliser la donnée issue de l'API**, il est indispensable de vérifier que l'identifiant FranceTravail, utilisé en paramètre d'appel, correspond à l'identité du particulier. Pour cela vous devez effectuer un appel sur l'API statut demandeur d'emploi : [Consulter les CGU spécifiques](#api_cgu).Selon la politique tarifaire choisie, le calcul des tarifs est réalisé grâce au quotient familial de la Caisse d’allocations familiales (CAF) ou de la sécurité sociale agricole (MSA) et/ou du revenu fiscal de référence figurant sur l'avis d'imposition du foyer. L'API Particulier permet d'accéder facilement au quotient familial de la CAF et de la MSA. -
+Les départements et régions ont mis en place des aides facultatives pour aider les familles à financer la scolarité, la culture, l'activité sportive des enfants ou des étudiants.
- Ces aides facultatives prennent différentes formes :
- - aide financière,
- - fourniture de matériel informatique,
- - bon d’achat pour des livres,
+ Ces aides facultatives prennent différentes formes :
+ - aide financière,
+ - fourniture de matériel informatique,
+ - bon d’achat pour des livres,
- remboursement d'une partie de la licence sportive, etc...
Elle sont conditionnées à certains critères sociaux qui sont définis dans les délibérations des collectivités.
-
Les centres communaux d'action sociale (CCAS) sont amenés à instruire de nombreux dossiers d'obtention d'aide sociale pour leurs usagers : aide sociale légale, aide alimentaire, chèque énergie, aide au bus, etc..
Ces dossiers utilisent généralement les données d’état-civil, l'adresse, le quotient familial de la Caisse d’allocations familiales (CAF), la composition du foyer, l'avis d'imposition.
-