openapi: 3.1.0 info: title: 'O2S API' description: 'Cette API offre différents services permettant de récupérer des informations associées à O2S' version: 1.94.0 servers: [] paths: '/accounts/{accountId}/account-details': get: operationId: account_details_collection tags: - 'Account details' responses: '200': description: 'Accounts detail collection' content: application/json: schema: type: array items: type: object properties: { accountDetailId: { type: string, examples: [a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467], description: 'Account details id' }, referenceDate: { type: string, examples: ['2024-09-16'], description: 'Reference date' }, liquidity: { type: number, examples: [1523.52], description: liquidity }, totalValue: { type: number, examples: [5312.94], description: 'total value' }, view: { type: string, examples: [SITUATION_VUE_O2S], description: view }, situation: { type: array, items: { type: object, properties: { assetId: { type: string, examples: [725d4ebe-39e3-4466-86f1-c60178fb6354], description: 'Asset id' }, quantity: { type: number, examples: [88], description: Quantity }, netAssetValue: { type: number, examples: [54.66], description: 'Net asset value' }, netAssetValueDate: { type: string, examples: ['2024-09-16'], description: Date }, value: { type: number, examples: [4810.08], description: Amount }, currency: { type: string, examples: [EUR], description: Currency }, pocketId: { type: string, examples: [a86790ab-67c9-11f0-8549-00505689bbcc], description: 'Pocket Id' }, averagePrice: { type: object, properties: { averagePriceValue: { type: number, examples: [43.45], description: 'Average price value' }, date: { type: string, examples: ['2024-02-12'], description: Date }, type: { type: string, examples: [PAMD], description: Type } } } } } } } examples: 'example data': value: [{ accountDetailId: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467, referenceDate: '2024-09-16', liquidity: 1523.52, totalValue: 5312.94, view: SITUATION_VUE_O2S, situation: [{ assetId: 725d4ebe-39e3-4466-86f1-c60178fb6354, quantity: 88, netAssetValue: 54.66, date: '2024-09-16', value: 4810.08, currency: EUR, pocketId: a86790ab-67c9-11f0-8549-00505689bbcc, averagePrice: { averagePriceValue: 43.45, date: '2024-02-12', type: PAMD } }, { assetId: bad0dd9b-4e72-4725-a252-3a4398e8ee23, quantity: 174, netAssetValue: 2.89, date: '2024-09-16', value: 502.86, currency: EUR, pocketId: a86790ab-67c9-11f0-8549-00505689bbcc, averagePrice: { averagePriceValue: 3.03, date: '2024-02-12', type: PAMD } }] }] summary: 'Account details example data' '404': description: 'Resource not found' summary: 'Retrieve one or more Account details of an Account.' description: 'Retrieve one or more account details of an account.' parameters: - name: accountId in: path description: 'Account Reference Id' required: true deprecated: false schema: type: string style: simple explode: false - name: dateFrom in: query description: 'Minimum date from which the data are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-14' - name: dateTo in: query description: 'Maximum date from which the data are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-18' - name: limit in: query description: 'Maximum number of items to return' required: false deprecated: false schema: type: integer style: form explode: true example: 10 - name: offset in: query description: 'Index (0-based) of the first item to return' required: false deprecated: false schema: type: integer style: form explode: true example: 0 post: operationId: account_details_post tags: - 'Account details' responses: '201': description: 'Account details resource created' content: application/json: schema: type: object properties: id: { type: string, description: 'Account Details Id' } example: accountDetailId: 725d4ebe-39e3-4466-86f1-c60178fb6354 summary: 'Creates a Account details resource.' description: 'Creates a Account details resource.' parameters: - name: accountId in: path description: 'Account details identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: referenceDate: type: string examples: ['2024-09-16'] description: 'Reference date' liquidity: type: number examples: [1523.52] description: liquidity situation: type: array items: { type: object, properties: { assetId: { type: string, examples: [725d4ebe-39e3-4466-86f1-c60178fb6354], description: 'Asset id' }, quantity: { type: number, examples: [88], description: Quantity }, netAssetValue: { type: number, examples: [54.66], description: 'Net asset value' }, netAssetValueDate: { type: string, examples: ['2024-09-16'], description: Date }, value: { type: number, examples: [4810.08], description: Amount }, currency: { type: string, examples: [EUR], description: Currency }, pocketId: { type: string, examples: [a86790ab-67c9-11f0-8549-00505689bbcc], description: 'Pocket Id' }, averagePrice: { type: object, properties: { averagePriceValue: { type: number, examples: [43.45], description: 'Average price value' }, date: { type: string, examples: ['2024-02-12'], description: Date }, type: { type: string, examples: [PAMD], description: Type } } } } } examples: 'example data': value: referenceDate: '2024-09-16' liquidity: 1523.52 situation: [{ assetId: 725d4ebe-39e3-4466-86f1-c60178fb6354, quantity: 88, netAssetValue: 54.66, date: '2024-09-16', value: 4810.08, currency: EUR, averagePrice: { averagePriceValue: 46.69, date: '2024-03-03', type: PAMD } }, { assetId: bad0dd9b-4e72-4725-a252-3a4398e8ee23, quantity: 174, netAssetValue: 2.89, date: '2024-09-16', value: 502.86, currency: EUR, averagePrice: { averagePriceValue: 2.81, date: '2024-03-03', type: PAMD } }] summary: 'Account details example data' required: false '/accounts/{accountId}/account-details/{referenceDate}': get: operationId: account_details_item tags: - 'Account details' responses: '200': description: 'Account details item' content: application/json: schema: type: object properties: accountDetailId: { type: string, examples: [a96e6ae5-44ca-4b1e-9d89-f0d52ec1b467], description: 'Account details id' } referenceDate: { type: string, examples: ['2024-03-15'], description: 'Reference date' } liquidity: { type: number, examples: [1869.63], description: liquidity } totalValue: { type: number, examples: [4077.78], description: 'total value' } view: { type: string, examples: [SITUATION_VUE_PARTENAIRE], description: view } situation: { type: array, items: { type: object, properties: { assetId: { type: string, examples: [725d4ebe-39e3-4466-86f1-c60178fb6354], description: 'Asset id' }, quantity: { type: number, examples: [88], description: Quantity }, netAssetValue: { type: number, examples: [54.66], description: 'Net asset value' }, netAssetValueDate: { type: string, examples: ['2024-09-16'], description: Date }, value: { type: number, examples: [4810.08], description: Amount }, currency: { type: string, examples: [EUR], description: Currency }, pocketId: { type: string, examples: [a86790ab-67c9-11f0-8549-00505689bbcc], description: 'Pocket Id' }, averagePrice: { type: object, properties: { averagePriceValue: { type: number, examples: [43.45], description: 'Average price value' }, date: { type: string, examples: ['2024-02-12'], description: Date }, type: { type: string, examples: [PAMD], description: Type } } } } } } examples: 'example data': value: { accountDetailId: a96e6ae5-44ca-4b1e-9d89-f0d52ec1b467, referenceDate: '2024-03-15', liquidity: 1869.63, totalValue: 4077.78, view: SITUATION_VUE_PARTENAIRE, situation: [{ assetId: b76f714a-281e-4258-836c-3067c0b56011, quantity: 45, netAssetValue: 76.41, date: '2024-03-15', value: 3438.45, currency: EUR, pocketId: a86790ab-67c9-11f0-8549-00505689bbcc, averagePrice: { averagePriceValue: 70.35, date: '2024-02-19', type: PAMD } }, { assetId: 7d4bb34a-063d-4b22-abe7-4d2ede73331c, quantity: 101, netAssetValue: 6.33, date: '2024-03-15', value: 639.33, currency: EUR, pocketId: a86790ab-67c9-11f0-8549-00505689bbcc, averagePrice: { averagePriceValue: 2.77, date: '2024-02-18', type: PAMD } }] } summary: 'Account details example data' '404': description: 'Resource not found' summary: 'Retrieve one specific Account detail.' description: 'Retrieve one specific account detail.' parameters: - name: accountId in: path description: 'Account Reference Id' required: true deprecated: false schema: type: string style: simple explode: false - name: referenceDate in: path description: 'Account Details Reference date' required: true deprecated: false schema: type: string style: simple explode: false example: '2024-09-18' delete: operationId: account_details_delete tags: - 'Account details' responses: '204': description: 'Account details resource deleted' '404': description: 'Not found' content: application/ld+json: schema: $ref: '#/components/schemas/Error.jsonld' application/problem+json: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' links: { } summary: 'Removes the Account details resource.' description: 'Removes the Account details resource.' parameters: - name: accountId in: path description: 'Account details identifier' required: true deprecated: false schema: type: string style: simple explode: false - name: referenceDate in: path description: 'Account details identifier' required: true deprecated: false schema: type: string style: simple explode: false '/accounts/{accountId}/account-flow': get: operationId: account_flow_collection tags: - 'Account flow' responses: '200': description: 'Accounts flows collection' content: application/json: schema: type: array items: type: object properties: { accountFlowId: { type: string, examples: [a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467], description: 'Account flow id' }, type: { type: string, examples: [ARV], description: 'Flow type' }, label: { type: string, examples: [BXD225D895], description: 'Supplier code' }, status: { type: string, examples: [VALID], description: 'Flow status' }, dateEffect: { type: string, examples: ['2025-12-11'], description: 'Flow date effect' }, grossAmount: { type: number, examples: [12000], description: 'Flow gross amount' }, netAmount: { type: number, examples: [11879], description: 'Flow net amount' }, fees: { type: number, examples: [121], description: 'Flow fees' }, details: { type: array, items: { type: object, properties: { assetId: { type: string, examples: [53faadee-30d0-4bd1-987b-6e1fb6a4d25d], description: 'Asset id' }, currency: { type: string, examples: [EUR], description: 'Flow currency' }, netAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, grossAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, quantity: { type: number, examples: [-1], description: Quantity }, netAssetValue: { type: number, examples: [4000], description: 'Net asset value' }, datePricing: { type: string, examples: ['2026-01-15'], description: 'Flow detail date pricing' }, fees: { type: number, examples: [0], description: 'Flow detail fees' } } } } } examples: 'example data': value: [{ accountFlowId: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467, type: ARV, label: BXD225D895, status: VALID, dateEffect: '2025-12-11', grossAmount: 12000, netAmount: 10000, fees: 2000, details: [{ assetId: 627cf3ff-8616-4541-b451-5033f76cb43e, currency: EUR, grossAmount: -12000, netAmount: -12000, quantity: -1, netAssetValue: 12000, datePricing: '2025-12-11', fees: 0 }, { assetId: b1f9665e-f04a-483b-b0b9-9720e9a1be92, currency: EUR, grossAmount: 10000, netAmount: 10000, quantity: 1, netAssetValue: 11879, datePricing: '2025-12-11', fees: 0 }] }] summary: 'Account flows example data' '206': description: 'Accounts flows collection' content: application/json: schema: type: array items: type: object properties: { accountFlowId: { type: string, examples: [a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467], description: 'Account flow id' }, type: { type: string, examples: [ARV], description: 'Flow type' }, label: { type: string, examples: [BXD225D895], description: 'Supplier code' }, status: { type: string, examples: [VALID], description: 'Flow status' }, dateEffect: { type: string, examples: ['2025-12-11'], description: 'Flow date effect' }, grossAmount: { type: number, examples: [12000], description: 'Flow gross amount' }, netAmount: { type: number, examples: [11879], description: 'Flow net amount' }, fees: { type: number, examples: [121], description: 'Flow fees' }, details: { type: array, items: { type: object, properties: { assetId: { type: string, examples: [53faadee-30d0-4bd1-987b-6e1fb6a4d25d], description: 'Asset id' }, currency: { type: string, examples: [EUR], description: 'Flow currency' }, netAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, grossAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, quantity: { type: number, examples: [-1], description: Quantity }, netAssetValue: { type: number, examples: [4000], description: 'Net asset value' }, datePricing: { type: string, examples: ['2026-01-15'], description: 'Flow detail date pricing' }, fees: { type: number, examples: [0], description: 'Flow detail fees' } } } } } examples: 'example data': value: [{ accountFlowId: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467, label: BXD225D895, status: VALID, dateEffect: '2025-12-11', currency: EUR, grossAmount: 12000, netAmount: 11879, fees: 121 }] summary: 'Account flows example data' '404': description: 'Resource not found' summary: 'Retrieve one or more Account of an Account.' description: 'Retrieve one or more account flows of an account.' parameters: - name: accountId in: path description: 'Account Reference Id' required: true deprecated: false schema: type: string style: simple explode: false - name: dateFrom in: query description: 'Minimum date from which the data are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-14' - name: dateTo in: query description: 'Maximum date from which the data are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-18' - name: limit in: query description: 'Maximum number of items to return' required: false deprecated: false schema: type: integer style: form explode: true example: 10 - name: offset in: query description: 'Index (0-based) of the first item to return' required: false deprecated: false schema: type: integer style: form explode: true example: 0 - name: type in: query description: 'Type of flow for which an export is desired' required: false deprecated: false schema: type: string enum: - OUV - VEP - VLC - ARV - ARA - RAP - RAT - RPP - ENT - SOR - B_ACHAT - B_VENTE - B_IN_ESPECE - B_OUT_ESPECE style: form explode: true example: ARV - name: ignoreDetails in: query description: 'Should we ignore the export of flow details ?. Default value : false' required: false deprecated: false schema: type: string enum: - 'true' - 'false' style: form explode: true example: 'false' post: operationId: account_flow_post tags: - 'Account flow' responses: '201': description: 'Account details resource created' content: application/json: schema: type: object properties: id: { type: string, description: 'Account Details Id' } example: accountFlowId: 924117a4-1286-4d29-b0c2-014b58e1b54d summary: 'Creates an account flow on an account.' description: 'Creates an account flow resource.' parameters: - name: accountId in: path description: 'Account details identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: type: type: string examples: [ARV] description: 'Flow type' label: type: string examples: [AQZERTYGRT226] description: 'Flow label' status: type: string examples: [VALID] description: 'Flow status' dateEffect: type: string examples: ['2026-01-15'] description: 'Flow date effect' grossAmount: type: number examples: [7000] description: 'Flow gross amount' netAmount: type: number examples: [6600] description: 'Flow net amount' fees: type: number examples: [400] description: 'Flow fees' details: type: array items: { type: object, properties: { assetId: { type: string, examples: [53faadee-30d0-4bd1-987b-6e1fb6a4d25d], description: 'Asset id' }, currency: { type: string, examples: [EUR], description: 'Flow currency' }, netAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, grossAmount: { type: number, examples: [-4000], description: 'Flow detail Gross Amount' }, quantity: { type: number, examples: [-1], description: Quantity }, netAssetValue: { type: number, examples: [4000], description: 'Net asset value' }, datePricing: { type: string, examples: ['2026-01-15'], description: 'Flow detail date pricing' }, fees: { type: number, examples: [0], description: 'Flow detail fees' } } } examples: 'example data': value: type: ARV label: AQZERTYGRT226 status: VALID dateEffect: '2026-01-15' grossAmount: 7000 netAmount: 6600 fees: 400 details: [{ assetId: 14b39c29-d9c1-4111-a4b1-aecc245b7de7, currency: EUR, grossAmount: -7000, netAmount: -7000, quantity: -1, netAssetValue: 7000, datePricing: '2026-01-15', fees: 0 }, { assetId: 3df6ad3c-b039-417d-a406-db79b7b3aab9, currency: EUR, grossAmount: 6600, netAmount: 6600, quantity: 1, netAssetValue: 6600, datePricing: '2026-01-15', fees: 0 }] summary: 'Account flows example data' required: false '/accounts/{accountId}/account-flow/{accountFlowId}': delete: operationId: account_flow_delete tags: - 'Account flow' responses: '204': description: 'Account flow resource deleted' '404': description: 'Not found' content: application/ld+json: schema: $ref: '#/components/schemas/Error.jsonld' application/problem+json: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' links: { } summary: 'Removes the Account flow resource.' description: 'Removes the Account flow resource.' parameters: - name: accountId in: path description: 'Account flow identifier' required: true deprecated: false schema: type: string style: simple explode: false - name: accountFlowId in: path description: 'Account flow identifier' required: true deprecated: false schema: type: string style: simple explode: false /accounts: get: operationId: compte_collection tags: - Accounts responses: '200': description: 'Retrieve one or more accounts with optional filters.' content: application/json: schema: type: array items: type: object properties: { accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Id du compte' }, accountNumber: { type: string, example: ABCD-1234, description: 'Numéro du compte' }, label: { type: string, example: 'My Account Number 123', description: 'Libellé du compte' }, openingDate: { type: string, example: '2024-09-16', description: "Date d'ouverture du compte" }, productId: { type: string, example: '123456', description: 'Id du produit du compte' }, persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Id de la personne' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role de la personne' } } }, example: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } } examples: basic: value: [{ accountId: 3c30b1de-f71d-11ee-be36-0050568937f2, accountNumber: ABCD-1234, label: 'My Account Number 123', openingDate: '2024-09-16', productId: '123456', persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] }] summary: 'Retrieve one or more accounts.' description: 'Retrieve one or more accounts.' parameters: - name: limit in: query description: 'Number of items to return. Min-Max : 1-100, Default : 20' required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Index (0-based) of the first item to return. Default: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: accountNumber in: query description: 'Filter by account number' required: false deprecated: false schema: type: string style: form explode: false - name: productId in: query description: 'Filter by product id' required: false deprecated: false schema: type: integer style: form explode: false - name: personId in: query description: 'Filter by person id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdPrimary in: query description: 'Filter by user id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdSecondary in: query description: 'Filter by secondary user id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdAssistant in: query description: 'Filter by assistant id' required: false deprecated: false schema: type: string style: form explode: false post: operationId: compte_post tags: - Accounts responses: '201': description: 'The entity has been successfully created.' content: application/json: schema: type: array items: type: object properties: { accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Id du compte' } } '404': description: "The entity specified doesn't exist." content: application/json: schema: type: object properties: title: { type: string, example: "Aucune ressource n'a pu être trouvée" } type: { type: string, example: '/o2s-api/Not Found' } status: { type: string, example: 404 } detail: { type: string, example: "The entity specified doesn't exist" } instance: { type: string, example: /api/accounts } summary: 'Create an account.' description: 'Create an account.' parameters: [] requestBody: content: application/json: schema: type: object properties: accountNumber: type: string example: ABCD-1234 description: 'Numéro du compte' label: type: string example: 'My Account Number 123' description: 'Libellé du compte' openingDate: type: string example: '2024-09-16' description: "Date d'ouverture du compte" productId: type: string example: '123456' description: 'Id du produit du compte' persons: type: array items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Id de la personne' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role de la personne' } } } example: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] examples: basic: value: accountNumber: ABCD-1234 label: 'My Account Number 123' openingDate: '2024-09-16' productId: '123456' persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] required: false /accounts/deleted: get: operationId: compte_collection_deleted tags: - Accounts responses: '200': description: 'Retrieve one or more disabled accounts with optional filters.' content: application/json: schema: type: array items: type: object properties: { accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Id du compte' }, accountNumber: { type: string, example: ABCD-1234, description: 'Numéro du compte' }, label: { type: string, example: 'My Account Number 123', description: 'Libellé du compte' }, openingDate: { type: string, example: '2024-09-16', description: "Date d'ouverture du compte" }, productId: { type: string, example: '123456', description: 'Id du produit du compte' }, persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Id de la personne' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role de la personne' } } }, example: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } } examples: basic: value: [{ accountId: 3c30b1de-f71d-11ee-be36-0050568937f2, accountNumber: ABCD-1234, label: 'My Account Number 123', openingDate: '2024-09-16', productId: '123456', persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] }] summary: 'Retrieve one or more disabled accounts.' description: 'Retrieve one or more disabled accounts.' parameters: - name: limit in: query description: 'Number of items to return. Min-Max : 1-100, Default : 20' required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Index (0-based) of the first item to return. Default: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: accountNumber in: query description: 'Filter by account number' required: false deprecated: false schema: type: string style: form explode: false - name: productId in: query description: 'Filter by product id' required: false deprecated: false schema: type: integer style: form explode: false - name: personId in: query description: 'Filter by person id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdPrimary in: query description: 'Filter by user id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdSecondary in: query description: 'Filter by secondary user id' required: false deprecated: false schema: type: string style: form explode: false - name: userIdAssistant in: query description: 'Filter by assistant id' required: false deprecated: false schema: type: string style: form explode: false '/accounts/{accountId}': get: operationId: compte_item tags: - Accounts responses: '200': description: 'Retrieve one specific account.' content: application/json: schema: type: object properties: accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Id du compte' } accountNumber: { type: string, example: ABCD-1234, description: 'Numéro du compte' } label: { type: string, example: 'My Account Number 123', description: 'Libellé du compte' } openingDate: { type: string, example: '2024-09-16', description: "Date d'ouverture du compte" } productId: { type: string, example: '123456', description: 'Id du produit du compte' } persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Id de la personne' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role de la personne' } } }, example: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } examples: basic: value: { accountId: 3c30b1de-f71d-11ee-be36-0050568937f2, accountNumber: ABCD-1234, label: 'My Account Number 123', openingDate: '2024-09-16', productId: '123456', persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } summary: 'Retrieve one specific account.' description: 'Retrieve one specific account.' parameters: - name: accountId in: path description: 'Accounts identifier' required: true deprecated: false schema: type: string style: simple explode: false delete: operationId: compte_delete tags: - Accounts responses: '204': description: 'The entity has been successfully deleted.' '404': description: "The entity specified doesn't exist." summary: 'By default, disable an account. Can also, if specify, purge an account.' description: 'By default, disable an account. Can also, if specify, purge an account.' parameters: - name: accountId in: path description: 'Accounts identifier' required: true deprecated: false schema: type: string style: simple explode: false - name: purge in: query description: 'If true, purge instead of disable' required: false deprecated: false schema: type: boolean style: form explode: true patch: operationId: compte_patch tags: - Accounts responses: '204': description: 'The entity has been successfully updated.' '404': description: "The entity specified doesn't exist." content: application/json: schema: type: object properties: title: { type: string, example: "Aucune ressource n'a pu être trouvée" } type: { type: string, example: '/o2s-api/Not Found' } status: { type: string, example: 404 } detail: { type: string, example: "The entity specified doesn't exist" } instance: { type: string, example: /api/accounts } summary: 'Update somes elements of an account.' description: 'Update somes elements of an account.' parameters: - name: accountId in: path description: 'Accounts identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/merge-patch+json: schema: type: object properties: label: type: string example: 'My Account Number 123' description: 'Libellé du compte' examples: basic: value: label: 'My Account Number 123' required: false '/accounts/{accountId}/activate': patch: operationId: compte_item_deleted_reactive tags: - Accounts responses: '204': description: 'The entity has been successfully updated.' '404': description: "The entity specified doesn't exist." content: application/json: schema: type: object properties: title: { type: string, example: "Aucune ressource n'a pu être trouvée" } type: { type: string, example: '/o2s-api/Not Found' } status: { type: string, example: 404 } detail: { type: string, example: "The entity specified doesn't exist" } instance: { type: string, example: /api/accounts } summary: 'Reactivate an account.' description: 'Reactivate an account.' parameters: - name: accountId in: path description: 'Accounts identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/merge-patch+json: schema: type: object required: false '/accounts/{accountId}/deleted': get: operationId: compte_item_deleted tags: - Accounts responses: '200': description: 'Retrieve one specific disabled account.' content: application/json: schema: type: object properties: accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Id du compte' } accountNumber: { type: string, example: ABCD-1234, description: 'Numéro du compte' } label: { type: string, example: 'My Account Number 123', description: 'Libellé du compte' } openingDate: { type: string, example: '2024-09-16', description: "Date d'ouverture du compte" } productId: { type: string, example: '123456', description: 'Id du produit du compte' } persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Id de la personne' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role de la personne' } } }, example: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } examples: basic: value: { accountId: 3c30b1de-f71d-11ee-be36-0050568937f2, accountNumber: ABCD-1234, label: 'My Account Number 123', openingDate: '2024-09-16', productId: '123456', persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }] } summary: 'Retrieve one specific disabled account.' description: 'Retrieve one specific disabled account.' parameters: - name: accountId in: path description: 'Accounts identifier' required: true deprecated: false schema: type: string style: simple explode: false /agences: get: operationId: api_agences_get_collection tags: - Agences responses: '200': description: 'Retourne la liste des agences.' content: application/json: schema: type: object properties: id: { type: string, examples: [e9d8edc6-7906-4e02-a37e-cf8b17347190], description: "Id d'un élément de la table" } libelle: { type: string, examples: ['Agence numéro 1'], description: "Le libellé associé à l'id" } examples: 'example data': value: [{ id: e9d8edc6-7906-4e02-a37e-cf8b17347190, libelle: 'Agence numéro 1' }, { id: 549985b8-e630-4c55-9984-01d9bbc69d85, libelle: 'Agence numéro 2' }] summary: liste summary: 'Récupérer la liste des agences.' description: 'Récupérer la liste des agences.' parameters: - name: page in: query description: 'The collection page number' required: false deprecated: false schema: type: integer default: 1 style: form explode: true post: operationId: api_agences_post tags: - Agences responses: '201': description: "L'agence a bien été créée." '400': description: "Une erreur est survenue à la création d'une agence." summary: 'Créer une agence.' description: 'Créer une agence.' parameters: [] requestBody: content: application/json: schema: type: object properties: libelle: type: [string, 'null'] moyensContact: type: [object, 'null'] properties: { adresse: { type: [object, 'null'], properties: { voie: { type: [string, 'null'] }, localite: { type: [string, 'null'] }, codePostal: { type: [string, 'null'] }, codePays: { type: [string, 'null'] } } } } examples: sansMoyensContact: value: libelle: 'Agence numéro 1' avecMoyensContact: value: libelle: 'Agence numéro 1' moyensContact: { adresse: { voie: "1 rue d'exemple", localite: Paris, codePostal: '75000', codePays: FR } } required: false '/agences/{agenceId}': get: operationId: api_agences_agenceId_get tags: - Agences responses: '200': description: 'Retourne une agence.' content: application/json: schema: type: object properties: id: { type: string, examples: [e9d8edc6-7906-4e02-a37e-cf8b17347190], description: "Id d'un élément de la table" } libelle: { type: string, examples: ['Agence numéro 1'], description: "Le libellé associé à l'id" } examples: 'example data': value: { id: e9d8edc6-7906-4e02-a37e-cf8b17347190, libelle: 'Agence numéro 1' } summary: exemple '404': description: "L'agence n'a pas été trouvée." summary: 'Récupérer une agence.' description: 'Récupérer une agence.' parameters: - name: agenceId in: path description: 'Agences identifier' required: true deprecated: false schema: type: string style: simple explode: false put: operationId: api_agences_agenceId_put tags: - Agences responses: '204': description: "L'agence a bien été modifiée." '400': description: "Une erreur est survenue à la modification de l'agence." '404': description: "L'agence à modifier n'a pas été trouvée." summary: 'Modifie une agence.' description: 'Modifie une agence.' parameters: - name: agenceId in: path description: 'Agence ID' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: libelle: type: [string, 'null'] moyensContact: type: [object, 'null'] properties: { adresse: { type: [object, 'null'], properties: { voie: { type: [string, 'null'] }, localite: { type: [string, 'null'] }, codePostal: { type: [string, 'null'] }, codePays: { type: [string, 'null'] } } } } examples: sansMoyensContact: value: libelle: "1 rue d'exemple" avecMoyensContact: value: libelle: 'Agence numéro 1' moyensContact: { adresse: { voie: "1 rue d'exemple", localite: Paris, codePostal: '75000', codePays: FR } } required: false delete: operationId: api_agences_agenceId_delete tags: - Agences responses: '204': description: "L'agence a bien été supprimée." '404': description: "L'agence à supprimer n'a pas été trouvée." summary: 'Supprime une agence.' description: 'Supprime une agence.' parameters: - name: agenceId in: path description: 'Agence ID' required: true deprecated: false schema: type: string style: simple explode: false /assets: get: operationId: asset_collection tags: - Assets responses: '200': description: 'Retrieve one or more assets with optional filters.' content: application/json: schema: type: array items: type: object properties: { assetId: { type: string, examples: ['1'], description: 'Asset id' }, label: { type: string, examples: ['SCI Cardimmo'], description: 'Asset label' }, isin: { type: string, examples: ['000000000001'], description: 'Asset isin' }, institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: 'Asset institution id' }, type: { type: string, examples: [SCI], description: 'Asset type' }, currency: { type: string, examples: [EUR], description: 'Asset currency' } } examples: basic: value: [{ assetId: '1', label: 'SCI Cardimmo', isin: '000000000001', institutionId: ALTIVIEVIAAG2RLAMONDIALE, type: SCI, currency: EUR }] summary: 'Retrieve one or more assets.' description: 'Retrieve one or more assets.' parameters: - name: limit in: query description: 'Number of items to return. Min-Max : 1-100, Default : 20' required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Index (0-based) of the first item to return. Default: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: isin in: query description: 'Filter by isin' required: false deprecated: false schema: type: string style: form explode: false '/assets/{assetId}': get: operationId: asset_item tags: - Assets responses: '200': description: 'Retrieve one specific asset.' content: application/json: schema: type: object properties: assetId: { type: string, examples: ['1'], description: 'Asset id' } label: { type: string, examples: ['SCI Cardimmo'], description: 'Asset label' } isin: { type: string, examples: ['000000000001'], description: 'Asset isin' } institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: 'Asset institution id' } type: { type: string, examples: [SCI], description: 'Asset type' } currency: { type: string, examples: [EUR], description: 'Asset currency' } examples: basic: value: { assetId: '1', label: 'SCI Cardimmo', isin: '000000000001', institutionId: ALTIVIEVIAAG2RLAMONDIALE, type: SCI, currency: EUR } '404': description: 'No result found with the parameters.' summary: 'Retrieve one specific asset.' description: 'Retrieve one specific asset.' parameters: - name: assetId in: path description: 'Assets identifier' required: true deprecated: false schema: type: string style: simple explode: false /categories-documents: get: operationId: categories tags: - Categories responses: '200': description: 'Récupère une liste de Catégories Document correspondant aux critères de recherche' content: application/json: schema: type: object properties: nom: { type: string, examples: [Email], description: 'Nom de la catégorie' } id: { type: string, examples: [6028c884-543c-11ec-82f4-0050568ae49b], description: 'Référence (id) de la catégorie' } parent-id: { type: string, examples: [f3a79c3b-ae2a-11e9-bc38-0050568a56f0], description: 'Référence (id) de la catégorie-parent.' } examples: 'example data': value: [{ nom: Email, id: f3a79c3b-ae2a-11e9-bc38-0050568a56f0 }, { nom: 'Mon dossier', id: 6505c667-4d37-11ec-a6eb-0050568ae49b, parent-id: f3a79c3b-ae2a-11e9-bc38-0050568a56f1 }, { nom: 'Email niveau 1', id: 6505c667-4d37-11ec-a6eb-0050568ae49c, parent-id: f3a79c3b-ae2a-11e9-bc38-0050568a56f2 }, { nom: Conformité, id: 6505c667-4d37-11ec-a6eb-0050568ae49d, parent-id: f3a79c3b-ae2a-11e9-bc38-0050568a56f3 }, { nom: 'Conformité niveau 2', id: 6505c667-4d37-11ec-a6eb-0050568ae49e, parent-id: f3a79c3b-ae2a-11e9-bc38-0050568a56f4 }] summary: liste '400': description: 'Le paramètre contactId est manquant' summary: 'Récupérer la liste des catégories de documents.' description: 'Récupérer la liste des catégories de documents.' parameters: - name: contactId in: query description: 'Référence (id) du contact' required: true deprecated: false schema: type: string style: form explode: true '/contacts-profiles/{contactId}': get: operationId: contact_profile_collection tags: - 'Contact Profile' responses: '200': description: 'Retrieve contact profiles.' content: application/json: schema: type: object properties: profileId: { type: string, examples: [de9bd842-42dd-11f0-b2c3-005056890f37], description: 'Profile id' } profileDate: { type: string, examples: ['2025-10-02'], description: 'Profile Date' } refusalToComplete: { type: string, examples: ['2025-10-01'], description: 'Refusal to complete Date' } externalProfile: { type: string, examples: ['2025-01-01'], description: 'External profile Date' } experience: { type: object, properties: { position: { type: number, examples: [3], description: 'Experience position' }, label: { type: string, examples: [Expérimenté], description: 'Experience label' } } } knowledge: { type: array, items: { type: object, properties: { FONDS_EURO: { type: string, examples: [1] }, PRODUITS_MONETAIRES: { type: string, examples: [0] }, PRODUITS_OBLIGATAIRES: { type: string, examples: [1] } } } } risk: { type: object, properties: { position: { type: number, examples: [3], description: 'Risk position' }, label: { type: string, examples: [Equilibré], description: 'Risk label' } } } lossTolerance: { type: object, properties: { position: { type: number, examples: [3], description: 'Loss Tolerance position' }, label: { type: string, examples: [Moyenne], description: 'Loss Tolerance label' } } } lossToleranceLevel: { type: object, properties: { refext: { type: string, examples: [PERTE_JUSQU_AU_MONTANT_INVESTI], description: 'Loss Tolerance Level refext' }, label: { type: string, examples: ["Perte financière jusqu'à concurrence des montants investis"], description: 'Loss Tolerance Level label' } } } esg: { type: object, properties: { position: { type: number, examples: [3], description: 'ESG position' }, label: { type: string, examples: [Significative], description: 'ESG label' }, criteria: { type: object, properties: { environnementalActivityPercent: { type: number, examples: [5], description: 'Environnemental activity percent criteria' }, environnementalAndSocialObjectifPercent: { type: number, examples: [15], description: 'Environnemental and social objectif percent criteria' }, paiPercent: { type: number, examples: [null], description: 'Pai percent criteria' }, paiList: { type: object, additionalProperties: { type: number } } } } } } horizon: { type: string, examples: [VERY_SHORT], description: 'Profile horizon' } excludedObjectives: { type: object, additionalProperties: { type: number } } examples: basic: value: { profileId: de9bd842-42dd-11f0-b2c3-005056890f37, profileDate: '2025-10-02', refusalToComplete: '2025-10-01', externalProfile: '2025-01-01', experience: { position: 3, label: Expérimenté }, knowledge: { FONDS_EURO: 1, PRODUITS_MONETAIRES: 0, PRODUITS_OBLIGATAIRES: 1 }, risk: { position: 3, label: Equilibré }, lossTolerance: { position: 3, label: Moyenne }, lossToleranceLevel: { refext: PERTE_JUSQU_AU_MONTANT_INVESTI, label: "Perte financière jusqu'à concurrence des montants investis" }, esg: { position: 3, label: Significative, criteria: { environnementalActivityPercent: 5, environnementalAndSocialObjectifPercent: 15, paiPercent: null, paiList: { GREENHOUSE_GAS: 1, AFFECTING_BIODIVERSITY_SENSITIVE_AREAS: 0, POLLUTANT_EMISSIONS_WATER: 1 } } }, horizon: VERY_SHORT, excludedObjectives: { PRESERVATION_CAPITAL: 0, CROISSANCE_CAPITAL: 1, COMPLEMENT_REVENUS: 0, COUVERTURE_CAPITAL: 0, EXPOSITION_LEVIER: 0 } } summary: 'Contact profiles example data' '404': description: 'Profile not found' content: application/json: schema: type: object properties: title: { type: string, examples: ["Aucune ressource n'a pu être trouvée"] } type: { type: string, examples: ['/o2s-api/Not Found'] } status: { type: string, examples: [404] } detail: { type: string, examples: ['Profiles not found.'] } instance: { type: string, examples: [/contacts/7817e819-a0f7-4121-9c8d-267b301387cb/profiles] } summary: 'Retrieve contact profiles.' description: 'Retrieve contact profiles.' parameters: - name: contactId in: path description: 'Contact Reference Id' required: true deprecated: false schema: type: string style: simple explode: false /documents: get: operationId: document_collection tags: - Documents responses: '200': description: 'Récupère une liste de Document correspondant aux critères facultatifs de recherche' content: application/json: schema: type: array items: type: object properties: { id: { type: string, examples: [3b8fbbce-f71c-11ee-be36-0050568937f2], description: 'Identification du document' }, libelle: { type: string, examples: [Document-test.pdf], description: 'Libellé générique du document' }, type: { type: string, enum: [IDENTITE, AUTRE], description: 'Le type de document' }, dateCreation: { type: string, examples: ['2024-04-24T14:15:22Z'], description: "Date et heure de création d'un document" }, dateMaj: { type: string, examples: ['2024-04-24T14:15:22Z'], description: "Date et heure de création d'un document" }, contenu: { type: object, properties: { nature: { type: string, examples: ['Nature du contenu'], description: "Permet d'identifier plus précisément la nature du contenu, le cas échéant" }, format: { type: string, examples: [PDF], description: "Permet d'identifier le format des données. Par exemple, utilisation d'un type MIME", enum: [TXT, JPEG, PNG, GIF, PDF] }, donnees: { type: array, examples: [[UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q]], description: "Permet de renseigner un ou plusieurs documents textes ou numérisés (par exemple ou le recto verso d'un document comme la carte nationale d'identité, etc.)", items: { type: string } } } }, ressourcesLiees: { type: array, items: { type: object, properties: { id: { type: string, examples: [3b8fbbce-f71c-11ee-be36-0050568937f2], description: "Permet d'identifier l'id de la ressource liée" }, type: { type: string, examples: [CONTACT], description: "Permet d'identifier le type de la ressource liée" } } } }, metadonnees: { type: object, properties: { donnees: { type: array, items: { type: object, properties: { cle: { type: string, description: "Clé d'une méta donnée", examples: [RESSOURCES_CATEGORIE] }, valeur: { type: string, description: "Valeur d'une méta donnée", examples: [GED_CATEGORIE_ACLASSER_CLIENT] }, app: { type: string, description: 'Application utilisée de la méta donnée', examples: [O2S] } } } } } } } examples: 'example data': value: [{ id: 3b8fbbce-f71c-11ee-be36-0050568937f2, libelle: Document-test.pdf, type: AUTRE, dateCreation: '2024-04-24T14:15:22Z', dateMaj: '2024-04-24T14:15:22Z', contenu: { nature: 'Nature du contenu', format: PDF, donnees: [UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q] }, ressourcesLiees: [{ id: 3b8fbbce-f71c-11ee-be36-0050568937f2, type: CONTACT }], metadonnees: { donnees: { cle: RESSOURCES_CATEGORIE, valeur: GED_CATEGORIE_ACLASSER_CLIENT, app: O2S } } }] summary: liste summary: 'Récupérer la liste des documents.' description: 'Récupérer la liste des documents.' parameters: - name: contactId in: query description: 'Référence (id) du contact détenteur des documents recherchés' required: true deprecated: false schema: type: string style: form explode: true - name: type in: query description: 'Le type de document' required: false deprecated: false schema: type: string enum: - IDENTITE - AUTRE description: 'Le type de document' style: form explode: true - name: limit in: query description: 'Nombre maximum de documents à retourner' required: false deprecated: false schema: type: integer style: form explode: true example: 20 - name: offset in: query description: 'Indice (0-based) du premier document à retourner' required: false deprecated: false schema: type: integer style: form explode: true example: 0 post: operationId: document_post tags: - Documents responses: '201': description: 'Le document a bien été créé' '400': description: 'Une erreur est survenue à la création du document' summary: 'Créer un document.' description: 'Créer un document.' parameters: [] requestBody: content: application/json: schema: type: object properties: libelle: type: string examples: [Document-test.pdf] description: 'Libellé générique du document' type: type: string enum: [IDENTITE, AUTRE] description: 'Le type de document' contenu: type: object properties: { nature: { type: string, examples: ['Nature du contenu'], description: "Permet d'identifier plus précisément la nature du contenu, le cas échéant" }, format: { type: string, examples: [PDF], description: "Permet d'identifier le format des données. Par exemple, utilisation d'un type MIME", enum: [TXT, JPEG, PNG, GIF, PDF] }, donnees: { type: array, examples: [[UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q]], description: "Permet de renseigner un ou plusieurs documents textes ou numérisés (par exemple ou le recto verso d'un document comme la carte nationale d'identité, etc.)", items: { type: string } } } ressourcesLiees: type: array items: { type: object, properties: { id: { type: string, examples: [3b8fbbce-f71c-11ee-be36-0050568937f2], description: "Permet d'identifier l'id de la ressource liée" }, type: { type: string, examples: [CONTACT], description: "Permet d'identifier le type de la ressource liée" } } } metadonnees: type: object properties: { donnees: { type: array, items: { type: object, properties: { cle: { type: string, description: "Clé d'une méta donnée", examples: [RESSOURCES_CATEGORIE] }, valeur: { type: string, description: "Valeur d'une méta donnée", examples: [GED_CATEGORIE_ACLASSER_CLIENT] }, app: { type: string, description: 'Application utilisée de la méta donnée', examples: [O2S] } } } } } examples: basic: value: libelle: Document-test.pdf type: AUTRE contenu: { nature: 'Nature du contenu', format: PDF, donnees: [UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q] } ressourcesLiees: [{ id: 3b8fbbce-f71c-11ee-be36-0050568937f2, type: CONTACT }] metadonnees: { donnees: { cle: RESSOURCES_CATEGORIE, valeur: GED_CATEGORIE_ACLASSER_CLIENT, app: O2S } } required: false '/documents/{documentId}': get: operationId: document_get tags: - Documents responses: '200': description: 'Récupère une liste de Document correspondant aux critères facultatifs de recherche' content: application/json: schema: type: object properties: id: { type: string, examples: [3b8fbbce-f71c-11ee-be36-0050568937f2], description: 'Identification du document' } libelle: { type: string, examples: [Document-test.pdf], description: 'Libellé générique du document' } type: { type: string, enum: [IDENTITE, AUTRE], description: 'Le type de document' } dateCreation: { type: string, examples: ['2024-04-24T14:15:22Z'], description: "Date et heure de création d'un document" } dateMaj: { type: string, examples: ['2024-04-24T14:15:22Z'], description: "Date et heure de création d'un document" } contenu: { type: object, properties: { nature: { type: string, examples: ['Nature du contenu'], description: "Permet d'identifier plus précisément la nature du contenu, le cas échéant" }, format: { type: string, examples: [PDF], description: "Permet d'identifier le format des données. Par exemple, utilisation d'un type MIME", enum: [TXT, JPEG, PNG, GIF, PDF] }, donnees: { type: array, examples: [[UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q]], description: "Permet de renseigner un ou plusieurs documents textes ou numérisés (par exemple ou le recto verso d'un document comme la carte nationale d'identité, etc.)", items: { type: string } } } } ressourcesLiees: { type: array, items: { type: object, properties: { id: { type: string, examples: [3b8fbbce-f71c-11ee-be36-0050568937f2], description: "Permet d'identifier l'id de la ressource liée" }, type: { type: string, examples: [CONTACT], description: "Permet d'identifier le type de la ressource liée" } } } } metadonnees: { type: object, properties: { donnees: { type: array, items: { type: object, properties: { cle: { type: string, description: "Clé d'une méta donnée", examples: [RESSOURCES_CATEGORIE] }, valeur: { type: string, description: "Valeur d'une méta donnée", examples: [GED_CATEGORIE_ACLASSER_CLIENT] }, app: { type: string, description: 'Application utilisée de la méta donnée', examples: [O2S] } } } } } } examples: 'example data': value: { id: 3b8fbbce-f71c-11ee-be36-0050568937f2, libelle: Document-test.pdf, type: AUTRE, dateCreation: '2024-04-24T14:15:22Z', dateMaj: '2024-04-24T14:15:22Z', contenu: { nature: 'Nature du contenu', format: PDF, donnees: [UERGIGZpbGUKJWZha2UgZm9ybWF0JQpOb20gOiBUZXN0ClByw6lub20gOiBQcsOpbm9tLXRlc3Q] }, ressourcesLiees: [{ id: 3b8fbbce-f71c-11ee-be36-0050568937f2, type: CONTACT }], metadonnees: { donnees: { cle: RESSOURCES_CATEGORIE, valeur: GED_CATEGORIE_ACLASSER_CLIENT, app: O2S } } } summary: liste '404': description: "Le document n'a pas été trouvé" summary: 'Récupérer la liste des documents.' description: 'Récupérer la liste des documents.' parameters: - name: documentId in: path description: 'Référence (id) du document' required: true deprecated: false schema: type: string style: simple explode: false - name: contenu in: query description: "Permet d'indiquer si le contenu du document est récupéré" required: false deprecated: false schema: type: boolean style: form explode: true delete: operationId: document_delete tags: - Documents responses: '204': description: 'Le document a bien été supprimé' '404': description: "Le document n'a pas été trouvé" summary: 'Supprimer un document.' description: 'Supprimer un document.' parameters: - name: documentId in: path description: 'Référence (id) du document' required: true deprecated: false schema: type: string style: simple explode: false /institutions: get: operationId: institution_collection tags: - Institutions responses: '200': description: 'Retrieve one or more institutions with optional filters.' content: application/json: schema: type: array items: type: object properties: { institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: "Id de l'institution" }, label: { type: string, examples: ['Altivie - La Mondiale Partenaire'], description: "Libellé de l'institution" } } examples: basic: value: [{ institutionId: ALTIVIEVIAAG2RLAMONDIALE, label: 'Altivie - La Mondiale Partenaire' }] summary: 'Retrieve one or more institutions.' description: 'Retrieve one or more institutions.' parameters: - name: limit in: query description: 'Number of items to return. Min-Max : 1-100, Default : 20' required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Index (0-based) of the first item to return. Default: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: label in: query description: 'Filter by label' required: false deprecated: false schema: type: string style: form explode: false '/institutions/{institutionId}': get: operationId: institution_item tags: - Institutions responses: '200': description: 'Retrieve one specific institution.' content: application/json: schema: type: object properties: institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: "Id de l'institution" } label: { type: string, examples: ['Altivie - La Mondiale Partenaire'], description: "Libellé de l'institution" } examples: basic: value: { institutionId: ALTIVIEVIAAG2RLAMONDIALE, label: 'Altivie - La Mondiale Partenaire' } '404': description: 'No result found with the parameters.' summary: 'Retrieve one specific institution.' description: 'Retrieve one specific institution.' parameters: - name: institutionId in: path description: 'Institutions identifier' required: true deprecated: false schema: type: string style: simple explode: false '/pockets/{pocketId}': get: operationId: pocket_item tags: - Pocket responses: '200': description: 'Retrieve one specific pocket.' content: application/json: schema: type: object properties: pocketId: { type: string, description: 'Pocket identifier' } pocketLabel: { type: string, description: 'Pocket label' } pocketType: { type: string, description: 'Pocket type' } institutionId: { type: string, description: 'Institution identifier' } institutionCode: { type: string, description: 'Institution code' } examples: basic: value: { pocketId: a86790ab-67c9-11f0-8549-00505689bbcc, pocketLabel: 'Mandat de gestion 1234', pocketType: GSM, institutionId: ALTIVIEVIAAG2RLAMONDIALE, institutionCode: Mandat_GSM_1234 } '404': description: 'Pocket not found' content: application/json: schema: type: object properties: title: { type: string, examples: ["Aucune ressource n'a pu être trouvée"] } type: { type: string, examples: ['/o2s-api/Not Found'] } status: { type: string, examples: [404] } detail: { type: string, examples: ['Pocket with id 7817e819-a0f7-4121-9c8d-267b301387cb not found.'] } instance: { type: string, examples: [/pockets/7817e819-a0f7-4121-9c8d-267b301387cb] } summary: 'Retrieve one specific pocket.' description: 'Retrieve one specific pocket.' parameters: - name: pocketId in: path description: 'Pocket identifier' required: true deprecated: false schema: type: string style: simple explode: false /pocket-types: get: operationId: pocket_types tags: - 'Pocket types' responses: '200': description: 'Retrieve one or more pocket types.' content: application/json: schema: type: object properties: pocketType: { type: string, examples: [GSM], description: 'Pocket type' } label: { type: string, examples: ['Gestion sous mandat'], description: 'Pocket label' } examples: 'example data': value: [{ pocketType: ND, label: 'Non définie' }, { pocketType: AVA, label: Avances }, { pocketType: PROF, label: 'Profil de gestion' }, { pocketType: NANTI, label: Nantissement }, { pocketType: ORD, label: 'Poche ordinaire' }] summary: liste summary: 'Retrieve one or more pocket types.' description: 'Retrieve one or more pocket types.' parameters: - name: type in: query description: 'Pocket Type' required: false deprecated: false schema: type: string style: form explode: true /products: get: operationId: product_collection tags: - Products responses: '200': description: 'Retrieve one or more products with optional filters.' content: application/json: schema: type: array items: type: object properties: { productId: { type: string, examples: ['1'], description: 'Product id' }, label: { type: string, examples: ['Altivie - La Mondiale Partenaire'], description: 'Product label' }, type: { type: string, examples: [COMPTE_TITRE], description: 'Product type' }, institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: 'Institution id' } } examples: basic: value: [{ productId: '1', label: 'Altivie - La Mondiale Partenaire', type: COMPTE_TITRE, institutionId: ALTIVIEVIAAG2RLAMONDIALE }] summary: 'Retrieve one or more products.' description: 'Retrieve one or more products.' parameters: - name: limit in: query description: 'Number of items to return. Min-Max : 1-100, Default : 20' required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Index (0-based) of the first item to return. Default: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: institutionId in: query description: 'Filter by institution id' required: false deprecated: false schema: type: string style: form explode: false '/products/{productId}': get: operationId: product_item tags: - Products responses: '200': description: 'Retrieve one specific product.' content: application/json: schema: type: object properties: productId: { type: string, examples: ['1'], description: 'Product id' } label: { type: string, examples: ['Altivie - La Mondiale Partenaire'], description: 'Product label' } type: { type: string, examples: [COMPTE_TITRE], description: 'Product type' } institutionId: { type: string, examples: [ALTIVIEVIAAG2RLAMONDIALE], description: 'Institution id' } examples: basic: value: { productId: '1', label: 'Altivie - La Mondiale Partenaire', type: COMPTE_TITRE, institutionId: ALTIVIEVIAAG2RLAMONDIALE } '404': description: 'No result found with the parameters.' summary: 'Retrieve one specific product.' description: 'Retrieve one specific product.' parameters: - name: productId in: path description: 'Products identifier' required: true deprecated: false schema: type: string style: simple explode: false /profils: get: operationId: profils tags: - Profils responses: '200': description: 'Retourne la liste des profils utilisateurs.' content: application/json: schema: type: object properties: id: { type: string, examples: [CONSEILLER], description: "Id d'un élément de la table" } libelle: { type: string, examples: [Conseiller], description: "Le libellé associé à l'id" } examples: 'example data': value: [{ id: CONSEILLER, libelle: Conseiller }, { id: ADMIN, libelle: Admin }] summary: liste summary: 'Récupérer la liste des profils.' description: 'Récupérer la liste des profils utilisateurs.' parameters: - name: page in: query description: 'The collection page number' required: false deprecated: false schema: type: integer default: 1 style: form explode: true /projects: get: operationId: projects_collection tags: - Project responses: '200': description: 'Projects collection' content: application/json: schema: type: array items: type: object properties: { projectId: { type: string, examples: [a06e6ae5-33ca-4b1e-9d89-f0d52ec1b46], description: 'Project id' }, label: { type: string, example: 'Projet 1234', description: 'Project name' }, date: { type: string, examples: ['2024-01-24'], description: 'Project Creation Date' }, persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Person Id' }, role: { type: string, example: SOUSCRIPTEUR, description: role } } } }, proposals: { type: array, items: { type: object, properties: { proposalId: { type: string, examples: [abc12-60e-e46a-a468-e45a62z78d6], description: 'Proposal Id' }, label: { type: string, example: 'Abritage CTO 1234', description: 'Proposal name' } } } } } examples: 'example data': value: [{ projectId: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b46, label: 'Projet 1234', date: '2024-01-24', persons: [{ personId: b76f714a-281e-4258-836c-3067c0b56011, role: SOUSCRIPTEUR }], proposals: [{ proposalId: abc12-60e-e46a-a468-e45a62z78d6, label: 'Abritage CTO 1234' }, { proposalId: aa51d-60e-e46a-a468-e45a62z78d8, label: 'Abritage CTO 56789' }] }] summary: 'Project example data' '404': description: 'Resource not found' summary: 'Retrieve one or more Projects.' description: 'Retrieve one or more projects.' parameters: - name: dateFrom in: query description: 'Minimum date from which the projects are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-14' - name: dateTo in: query description: 'Maximum date from which the projects are exported' required: false deprecated: false schema: type: string style: form explode: true example: '2024-09-18' - name: personId in: query description: 'Filter by person id' required: false deprecated: false schema: type: string style: form explode: true '/projects/{projectId}': get: operationId: projects_item tags: - Project responses: '200': description: 'Project item' content: application/json: schema: type: object properties: projectId: { type: string, example: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467, description: 'Project id' } label: { type: string, example: 'Projet 1234', description: 'Project name' } date: { type: string, example: '2025-11-15', description: 'Project creation date' } status: { type: string, example: 'En cours de traitement', description: 'Project status label' } recommendedProposal: { type: string, example: abc12d60-e46a-4a68-b45a-62z78d6e1234, description: 'Id of the recommended proposal' } selectedProposal: { type: string, example: abc12d60-e46a-4a68-b45a-62z78d6e1234, description: 'Id of the selected proposal' } persons: { type: array, items: { type: object, properties: { personId: { type: string, example: 5413e132-d263-11ee-9a50-0050568937f2, description: 'Person id' }, role: { type: string, example: SOUSCRIPTEUR, description: 'Role of the person in the project' } } } } parameters: { type: object, properties: { experience: { type: object, properties: { position: { type: integer, example: 3 }, label: { type: string, example: Expérimenté } } }, knowledge: { type: object, description: 'Map of product refext to knowledge level (0 or 1)', additionalProperties: { type: integer, enum: [0, 1] }, example: { FONDS_EURO: 1, PRODUITS_MONETAIRES: 0 } }, risk: { type: object, properties: { position: { type: integer, example: 3 }, label: { type: string, example: Equilibré } } }, lossTolerance: { type: object, properties: { position: { type: integer, example: 3 }, label: { type: string, example: Moyenne } } }, lossToleranceLevel: { type: object, properties: { refext: { type: string, example: PERTE_JUSQU_AU_MONTANT_INVESTI }, label: { type: string, example: "Perte financière jusqu'à concurrence des montants investis" } } }, esg: { type: object, properties: { position: { type: integer, example: 3 }, label: { type: string, example: Significative }, criteria: { type: object, properties: { environnementalActivityPercent: { type: number, example: 5 }, environnementalAndSocialObjectifPercent: { type: number, example: null }, paiPercent: { type: number, example: 25 }, paiList: { type: object, description: 'Map of PAI sector refext to inclusion flag (0 or 1)', additionalProperties: { type: integer, enum: [0, 1] }, example: { GREENHOUSE_GAS: 1, AFFECTING_BIODIVERSITY_SENSITIVE_AREAS: 0 } } } } } }, investmentHorizon: { type: object, properties: { code: { type: string, example: DUREE, enum: [DUREE, DATE] }, duration: { type: object, properties: { value: { type: string, example: '8' }, unit: { type: string, example: 'Y' } } } } }, objectives: { type: array, items: { type: string }, example: [VALORISATION_CAPITAL, REVENUS_REGULIERS] }, excludedObjectives: { type: object, description: 'Map of objective refext to exclusion flag (0 or 1)', additionalProperties: { type: integer, enum: [0, 1] }, example: { PRESERVATION_CAPITAL: 0, CROISSANCE_CAPITAL: 1 } }, globalPortfolioShare: { type: string, example: 35%, description: 'Share of the global portfolio allocated to this project' }, earlyDisinvestmentRisk: { type: string, example: FAIBLE, description: 'Risk level for early disinvestment' }, recommendedAllocation: { type: string, example: EQUILIBRE, description: 'Refext of the recommended allocation' }, maximumAllowedRisk: { type: string, example: RISQUE_5, description: 'Refext of the maximum allowed risk level' } } } proposals: { type: array, items: { type: object, properties: { proposalId: { type: string, example: abc12d60-e46a-4a68-b45a-62z78d6e1234, description: 'Proposal id' }, label: { type: string, example: 'Arbitrage CTO 1234', description: 'Proposal name' }, date: { type: string, example: '2025-11-15', description: 'Proposal creation date' }, accounts: { type: array, description: 'Accounts linked to this proposal', items: { type: object, properties: { accountId: { type: string, example: 3c30b1de-f71d-11ee-be36-0050568937f2, description: 'Account id' }, accountNumber: { type: string, example: ABCD-123412, description: 'Account number' }, label: { type: string, example: 'My Account Number 123123', description: 'Account label' } } } }, suitability: { type: integer, example: 1, description: 'Suitability score of the proposal' }, clientDecision: { type: string, example: 'Le ou les investisseurs acceptent le conseil et souhaitent réaliser toutes les opérations.', description: 'Client decision text' }, dateSignature: { type: string, example: '2026-04-01', description: 'Signature date' } } } } examples: 'example data': value: { projectId: a06e6ae5-33ca-4b1e-9d89-f0d52ec1b467, label: 'Projet 1234', date: '2025-11-15', status: 'En cours de traitement', recommendedProposal: abc12d60-e46a-4a68-b45a-62z78d6e1234, selectedProposal: abc12d60-e46a-4a68-b45a-62z78d6e1234, persons: [{ personId: 5413e132-d263-11ee-9a50-0050568937f2, role: SOUSCRIPTEUR }, { personId: 8827a4f1-d263-11ee-9a50-0050568937f2, role: CO_SOUSCRIPTEUR }], parameters: { experience: { position: 3, label: Expérimenté }, knowledge: { FONDS_EURO: 1, PRODUITS_MONETAIRES: 0, PRODUITS_OBLIGATAIRES: 1 }, risk: { position: 3, label: Equilibré }, lossTolerance: { position: 3, label: Moyenne }, lossToleranceLevel: { refext: PERTE_JUSQU_AU_MONTANT_INVESTI, label: "Perte financière jusqu'à concurrence des montants investis" }, esg: { position: 3, label: Significative, criteria: { environnementalActivityPercent: 5, environnementalAndSocialObjectifPercent: null, paiPercent: 25, paiList: { GREENHOUSE_GAS: 1, AFFECTING_BIODIVERSITY_SENSITIVE_AREAS: 0, POLLUTANT_EMISSIONS_WATER: 1 } } }, investmentHorizon: { code: DUREE, duration: { value: '8', unit: 'Y' } }, objectives: [VALORISATION_CAPITAL, REVENUS_REGULIERS], excludedObjectives: { PRESERVATION_CAPITAL: 0, CROISSANCE_CAPITAL: 1, COMPLEMENT_REVENUS: 0, COUVERTURE_CAPITAL: 0, EXPOSITION_LEVIER: 0 }, globalPortfolioShare: 35%, earlyDisinvestmentRisk: FAIBLE, recommendedAllocation: EQUILIBRE, maximumAllowedRisk: RISQUE_5 }, proposals: [{ proposalId: abc12d60-e46a-4a68-b45a-62z78d6e1234, label: 'Arbitrage CTO 1234', date: '2025-11-15', accounts: [{ accountId: 3c30b1de-f71d-11ee-be36-0050568937f2, accountNumber: ABCD-123412, label: 'My Account Number 123123' }, { accountId: a4f4f6c0-d7e4-11ef-b44d-0050568937f2, accountNumber: 'Numéro en attente', label: Angelina }], suitability: 1, clientDecision: 'Le ou les investisseurs acceptent le conseil et souhaitent réaliser toutes les opérations.', dateSignature: '2026-04-01' }, { proposalId: aa51d60e-e46a-4a68-b45a-62z78d8e5678, label: 'Versement PEA', date: '2025-11-20', suitability: 0, clientDecision: 'Le ou les investisseurs acceptent le conseil et souhaitent réaliser toutes les opérations.' }] } summary: 'Project example data' '404': description: 'Resource not found' summary: 'Retrieve one specific Project.' description: 'Retrieve one specific project.' parameters: - name: projectId in: path description: 'Project identifier' required: true deprecated: false schema: type: string style: simple explode: false /referentiels/contact-capacites: get: operationId: contact_capacites tags: - Referentiels responses: '200': description: 'Récupère la liste des éléments de contact-capacites correspondant aux critères de recherche.' content: application/json: schema: type: object properties: code: { type: string, examples: ['Majeur capable'], description: "Code d'un élément de la table" } uuid: { type: string, examples: [MAJEUR_CAPABLE], description: "l'uuid associé au code" } examples: listeSansCode: value: [{ code: 'Non définie', uuid: NDF }, { code: 'Majeur capable', uuid: MAJEUR_CAPABLE }, { code: 'Majeur protégé sous tutelle', uuid: MAJEUR_PROTEGE_SOUS_TUTELLE }] summary: listeSansCode listeAvecCode: value: [{ code: 'Majeur capable', uuid: MAJEUR_CAPABLE }] summary: listeAvecCode summary: 'Récupérer la liste contact-capacites.' description: 'Récupère la liste des éléments de contact-capacites correspondant aux critères de recherche.' parameters: - name: code in: query description: "Permet de récupérer uniquement l'uuid d'un code précis." required: false deprecated: false schema: type: string style: form explode: false /referentiels/contact-origines: get: operationId: contact_origines tags: - Referentiels responses: '200': description: 'Récupère la liste des éléments de contact-capacites correspondant aux critères de recherche.' content: application/json: schema: type: object properties: code: { type: string, examples: [Prescripteur], description: "Code d'un élément de la table" } uuid: { type: string, examples: [5b76735c-5922-102e-8bd9-00215a4521d0], description: "l'uuid associé au code" } examples: listeSansCode: value: [{ code: 'Non définie', uuid: NDF }, { code: Prescripteur, uuid: 5b76735c-5922-102e-8bd9-00215a4521d0 }, { code: Relationnel, uuid: 5b76742e-5922-102e-8bd9-00215a4521d0 }] summary: listeSansCode listeAvecCode: value: [{ code: Relationnel, uuid: 5b76742e-5922-102e-8bd9-00215a4521d0 }] summary: listeAvecCode summary: 'Récupérer la liste contact-origines.' description: 'Récupère la liste des éléments de contact-origines correspondant aux critères de recherche.' parameters: - name: code in: query description: "Permet de récupérer uniquement l'uuid d'un code précis." required: false deprecated: false schema: type: string style: form explode: false /referentiels/contact-professions: get: operationId: contact_professions tags: - Referentiels responses: '200': description: 'Récupère la liste des éléments de contact-capacites correspondant aux critères de recherche.' content: application/json: schema: type: object properties: code: { type: string, examples: ["Agent de l'État"], description: "Code d'un élément de la table" } uuid: { type: string, examples: [5b76735c-5922-102e-8bd9-00215a4521d0], description: "l'uuid associé au code" } examples: listeSansCode: value: [{ code: "Agent de l'État", uuid: 5b76735c-5922-102e-8bd9-00215a4521d0 }, { code: 'Agent de maîtrise', uuid: 5e0cc1b6-5922-102e-8bd9-00215a4521d0 }, { code: 'Majeur protégé sous tutelle', uuid: 5e0cc27e-5922-102e-8bd9-00215a4521d0 }] summary: listeSansCode listeAvecCode: value: [{ code: "Agent de l'État", uuid: 5b76735c-5922-102e-8bd9-00215a4521d0 }] summary: listeAvecCode summary: 'Récupérer la liste contact-professions.' description: 'Récupère la liste des éléments de contact-professions correspondant aux critères de recherche' parameters: - name: code in: query description: "Permet de récupérer uniquement l'uuid d'un code précis." required: false deprecated: false schema: type: string style: form explode: false /referentiels/contact-qualites: get: operationId: contact_qualites tags: - Referentiels responses: '200': description: 'Récupère la liste des éléments de contact-capacites correspondant aux critères de recherche.' content: application/json: schema: type: object properties: code: { type: string, examples: ['Très importante'], description: "Code d'un élément de la table" } uuid: { type: string, examples: [5b76735c-5922-102e-8bd9-00215a4521d0], description: "l'uuid associé au code" } examples: listeSansCode: value: [{ code: 'Très importante', uuid: 5ba808b8-5922-102e-8bd9-00215a4521d0 }, { code: Importante, uuid: 5ba80980-5922-102e-8bd9-00215a4521d0 }, { code: Normale, uuid: 5ba80a48-5922-102e-8bd9-00215a4521d0 }] summary: listeSansCode listeAvecCode: value: [{ code: Importante, uuid: 5ba80980-5922-102e-8bd9-00215a4521d0 }] summary: listeAvecCode summary: 'Récupérer la liste contact-qualites.' description: 'Récupère la liste des éléments de contact-qualites correspondant aux critères de recherche.' parameters: - name: code in: query description: "Permet de récupérer uniquement l'uuid d'un code précis." required: false deprecated: false schema: type: string style: form explode: false /utilisateurs: get: operationId: utilisateur_collection tags: - Utilisateurs responses: '200': description: "Retourne une liste d'Utilisateur correspondant aux critères facultatifs de recherche." content: application/json: schema: type: array items: type: object properties: { id: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2], description: "Id de l'utilisateur" }, dateCreation: { type: string, examples: ['2024-04-10'], description: "Date de création de l'utilisateur" }, dateMaj: { type: string, examples: ['2024-04-13'], description: "Date de mise à jour de l'utilisateur" }, profilId: { type: string, examples: [CONSEILLER], description: "Profil de l'utilisateur" }, refExternes: { type: object, properties: { O2S: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2] }, O2S-CODE: { type: string, examples: [CODE] } } }, statut: { type: string, examples: [ACTIVE], description: "Statut de l'utilisateur (Activé/Désactivé)" }, agenceIds: { type: array, items: { type: string }, examples: [[e9d8edc6-7906-4e02-a37e-cf8b17347190, 549985b8-e630-4c55-9984-01d9bbc69d85]], description: "Liste des agences de l'utilisateur" }, donneesPersonnelles: { type: object, properties: { civilite: { type: string, examples: [M] }, nom: { type: string, examples: [Dupont] }, prenoms: { type: array, items: { type: string }, examples: [[Jean, Marc]], description: "Liste des prénoms de l'utilisateur" }, moyensContact: { type: object, properties: { adresse: { type: object, properties: { intitule: { type: string, examples: ["Adresse d'exemple"] }, identification: { type: string, examples: ["Identification d'exemple"] }, immeuble: { type: string, examples: ["Immeuble d'exemple"] }, voie: { type: string, examples: ['12 rue de la fabrique'] }, codePostal: { type: string, examples: ['75000'] }, localite: { type: string, examples: [Paris] }, codePays: { type: string, examples: [France] } } }, telephones: { type: array, items: { type: object, properties: { type: { type: string, examples: [DOMICILE] }, numero: { type: string, examples: ['0102030405'] }, usages: { type: object, examples: [{ O2S_TYPE: DOMICILE }] } } }, examples: [[{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }]] }, emails: { type: array, items: { type: object, properties: { type: { type: string, examples: [PERSONNEL] }, adresse: { type: string, examples: [jean.dupont@test.local] }, libelle: { type: string, examples: [jean.dupont@test.local] }, usages: { type: object, examples: [{ type: 'Usage personnel' }] } } }, examples: [[{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }]] } } } } } } examples: basic: value: [{ id: 3c30b1de-f71d-11ee-be36-0050568937f2, dateCreation: '2024-04-10', dateMaj: '2024-04-13', profilId: CONSEILLER, refExternes: { O2S-CODE: CODE }, statut: ACTIVE, agenceIds: [e9d8edc6-7906-4e02-a37e-cf8b17347190, 549985b8-e630-4c55-9984-01d9bbc69d85], donneesPersonnelles: { civilite: M, nom: Dupont, prenoms: [Jean, Marc], moyensContact: { adresse: { intitule: "Adresse d'exemple", identification: "Identification d'exemple", immeuble: "Immeuble d'exemple", voie: '12 rue de la fabrique', codePostal: '75000', localite: Paris, codePays: France }, telephones: [{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }], emails: [{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }] } } }] summary: 'Récupérer la liste des utilisateurs.' description: 'Récupérer la liste des utilisateurs.' parameters: - name: limit in: query description: "Nombre d'éléments à retourner. Min-Max : 1-100, Défaut : 20" required: false deprecated: false schema: type: integer style: form explode: false - name: offset in: query description: 'Indice (0-based) du premier élément à retourner. Défaut: 0' required: false deprecated: false schema: type: integer style: form explode: false - name: refext in: query description: "Référence externe de l'utilisateur recherché (de la forme référentiel:identifiant)" required: false deprecated: false schema: type: string style: form explode: false - name: agenceId in: query description: 'Filtrer par agence' required: false deprecated: false schema: type: string style: form explode: false - name: profilId in: query description: 'Filtrer par profil' required: false deprecated: false schema: type: string style: form explode: false - name: responsableId in: query description: 'Filtrer par responsable id' required: false deprecated: false schema: type: string style: form explode: false post: operationId: utilisateur_post tags: - Utilisateurs responses: '201': description: "L'utilisateur a bien été créé." content: application/json: schema: type: object properties: id: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2], description: "Id de l'utilisateur" } examples: basic: value: { id: 3c30b1de-f71d-11ee-be36-0050568937f2 } '400': description: "Une erreur est survenue à la création d'un utilisateur." summary: 'Créer un utilisateur.' description: 'Créer un utilisateur.' parameters: [] requestBody: content: application/json: schema: type: object properties: profilId: type: string examples: [CONSEILLER] description: "Profil de l'utilisateur" refExternes: type: object properties: { O2S: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2] }, O2S-CODE: { type: string, examples: [CODE] } } login: type: string examples: [jean.dupont.acces] responsableId: type: string examples: [3c30b1de-f71d-11ee-be36-0050568937f2] description: 'Id du responsable de cet utilisateur' statut: type: string examples: [ACTIVE] description: "Statut de l'utilisateur (Activé/Désactivé)" donneesPersonnelles: type: object properties: { civilite: { type: string, examples: [M] }, nom: { type: string, examples: [Dupont] }, prenoms: { type: array, items: { type: string }, examples: [[Jean, Marc]], description: "Liste des prénoms de l'utilisateur" }, moyensContact: { type: object, properties: { adresse: { type: object, properties: { intitule: { type: string, examples: ["Adresse d'exemple"] }, identification: { type: string, examples: ["Identification d'exemple"] }, immeuble: { type: string, examples: ["Immeuble d'exemple"] }, voie: { type: string, examples: ['12 rue de la fabrique'] }, codePostal: { type: string, examples: ['75000'] }, localite: { type: string, examples: [Paris] }, codePays: { type: string, examples: [France] } } }, telephones: { type: array, items: { type: object, properties: { type: { type: string, examples: [DOMICILE] }, numero: { type: string, examples: ['0102030405'] }, usages: { type: object, examples: [{ O2S_TYPE: DOMICILE }] } } }, examples: [[{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }]] }, emails: { type: array, items: { type: object, properties: { type: { type: string, examples: [PERSONNEL] }, adresse: { type: string, examples: [jean.dupont@test.local] }, libelle: { type: string, examples: [jean.dupont@test.local] }, usages: { type: object, examples: [{ type: 'Usage personnel' }] } } }, examples: [[{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }]] } } } } examples: basic: value: profilId: CONSEILLER refExternes: { O2S-CODE: CODE } login: jean.dupont.acces statut: ACTIVE donneesPersonnelles: { civilite: M, nom: Dupont, prenoms: [Jean, Marc], moyensContact: { emails: [{ type: PERSONNEL, adresse: jean.dupont@test.local }] } } full: value: profilId: CONSEILLER refExternes: { O2S-CODE: CODE } login: jean.dupont.acces responsableId: 3c30b1de-f71d-11ee-be36-0050568937f2 statut: ACTIVE donneesPersonnelles: { civilite: M, nom: Dupont, prenoms: [Jean, Marc], moyensContact: { adresse: { intitule: "Adresse d'exemple", identification: "Identification d'exemple", immeuble: "Immeuble d'exemple", voie: '12 rue de la fabrique', codePostal: '75000', localite: Paris, codePays: France }, telephones: [{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }], emails: [{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }] } } required: false '/utilisateurs/{utilisateurId}': get: operationId: utilisateur_get tags: - Utilisateurs responses: '200': description: "Retourne les données d'un unique Utilisateur" content: application/json: schema: type: object properties: id: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2], description: "Id de l'utilisateur" } dateCreation: { type: string, examples: ['2024-04-10'], description: "Date de création de l'utilisateur" } dateMaj: { type: string, examples: ['2024-04-13'], description: "Date de mise à jour de l'utilisateur" } profilId: { type: string, examples: [CONSEILLER], description: "Profil de l'utilisateur" } refExternes: { type: object, properties: { O2S: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2] }, O2S-CODE: { type: string, examples: [CODE] } } } statut: { type: string, examples: [ACTIVE], description: "Statut de l'utilisateur (Activé/Désactivé)" } agenceIds: { type: array, items: { type: string }, examples: [[e9d8edc6-7906-4e02-a37e-cf8b17347190, 549985b8-e630-4c55-9984-01d9bbc69d85]], description: "Liste des agences de l'utilisateur" } donneesPersonnelles: { type: object, properties: { civilite: { type: string, examples: [M] }, nom: { type: string, examples: [Dupont] }, prenoms: { type: array, items: { type: string }, examples: [[Jean, Marc]], description: "Liste des prénoms de l'utilisateur" }, moyensContact: { type: object, properties: { adresse: { type: object, properties: { intitule: { type: string, examples: ["Adresse d'exemple"] }, identification: { type: string, examples: ["Identification d'exemple"] }, immeuble: { type: string, examples: ["Immeuble d'exemple"] }, voie: { type: string, examples: ['12 rue de la fabrique'] }, codePostal: { type: string, examples: ['75000'] }, localite: { type: string, examples: [Paris] }, codePays: { type: string, examples: [France] } } }, telephones: { type: array, items: { type: object, properties: { type: { type: string, examples: [DOMICILE] }, numero: { type: string, examples: ['0102030405'] }, usages: { type: object, examples: [{ O2S_TYPE: DOMICILE }] } } }, examples: [[{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }]] }, emails: { type: array, items: { type: object, properties: { type: { type: string, examples: [PERSONNEL] }, adresse: { type: string, examples: [jean.dupont@test.local] }, libelle: { type: string, examples: [jean.dupont@test.local] }, usages: { type: object, examples: [{ type: 'Usage personnel' }] } } }, examples: [[{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }]] } } } } } examples: basic: value: { id: 3c30b1de-f71d-11ee-be36-0050568937f2, dateCreation: '2024-04-10', dateMaj: '2024-04-13', profilId: CONSEILLER, refExternes: { O2S-CODE: CODE }, statut: ACTIVE, agenceIds: [e9d8edc6-7906-4e02-a37e-cf8b17347190, 549985b8-e630-4c55-9984-01d9bbc69d85], donneesPersonnelles: { civilite: M, nom: Dupont, prenoms: [Jean, Marc], moyensContact: { adresse: { intitule: "Adresse d'exemple", identification: "Identification d'exemple", immeuble: "Immeuble d'exemple", voie: '12 rue de la fabrique', codePostal: '75000', localite: Paris, codePays: France }, telephones: [{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }], emails: [{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }] } } } '404': description: "L'utilisateur n'a pas été trouvé." summary: 'Récupérer un utilisateur.' description: 'Récupérer un utilisateur.' parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false put: operationId: utilisateur_put tags: - Utilisateurs responses: '204': description: "L'utilisateur a bien été modifié." '400': description: "Une erreur est survenue à la modification d'un utilisateur." '404': description: "L'utilisateur n'a pas été trouvé." '422': description: 'Champs Invalides' content: application/json: schema: type: object properties: title: { type: string, examples: ['Données renseignées non valides'] } type: { type: string, examples: ['/o2s-api/Unprocessable Content'] } status: { type: integer, examples: ['422'] } detail: { type: string, examples: ["La valeur renseignée n'est pas valide"] } instance: { type: string, examples: [/api/utilisateurs/a37b7948-4e7f-11ef-bd56-005056839lf2] } summary: 'Modifier un utilisateur.' description: 'Modifier un utilisateur.' parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: profilId: type: string examples: [CONSEILLER] description: "Profil de l'utilisateur" refExternes: type: object properties: { O2S: { type: string, examples: [3c30b1de-f71d-11ee-be36-0050568937f2] }, O2S-CODE: { type: string, examples: [CODE] } } responsableId: type: string examples: [3c30b1de-f71d-11ee-be36-0050568937f2] description: 'Id du responsable de cet utilisateur' statut: type: string examples: [ACTIVE] description: "Statut de l'utilisateur (Activé/Désactivé)" donneesPersonnelles: type: object properties: { civilite: { type: string, examples: [M] }, nom: { type: string, examples: [Dupont] }, prenoms: { type: array, items: { type: string }, examples: [[Jean, Marc]], description: "Liste des prénoms de l'utilisateur" }, moyensContact: { type: object, properties: { adresse: { type: object, properties: { intitule: { type: string, examples: ["Adresse d'exemple"] }, identification: { type: string, examples: ["Identification d'exemple"] }, immeuble: { type: string, examples: ["Immeuble d'exemple"] }, voie: { type: string, examples: ['12 rue de la fabrique'] }, codePostal: { type: string, examples: ['75000'] }, localite: { type: string, examples: [Paris] }, codePays: { type: string, examples: [France] } } }, telephones: { type: array, items: { type: object, properties: { type: { type: string, examples: [DOMICILE] }, numero: { type: string, examples: ['0102030405'] }, usages: { type: object, examples: [{ O2S_TYPE: DOMICILE }] } } }, examples: [[{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }]] }, emails: { type: array, items: { type: object, properties: { type: { type: string, examples: [PERSONNEL] }, adresse: { type: string, examples: [jean.dupont@test.local] }, libelle: { type: string, examples: [jean.dupont@test.local] }, usages: { type: object, examples: [{ type: 'Usage personnel' }] } } }, examples: [[{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }]] } } } } examples: exemple: value: profilId: CONSEILLER refExternes: { O2S-CODE: CODE } responsableId: 3c30b1de-f71d-11ee-be36-0050568937f2 statut: ACTIVE donneesPersonnelles: { civilite: M, nom: Dupont, prenoms: [Jean, Marc], moyensContact: { adresse: { intitule: "Adresse d'exemple", identification: "Identification d'exemple", immeuble: "Immeuble d'exemple", voie: '12 rue de la fabrique', codePostal: '75000', localite: Paris, codePays: France }, telephones: [{ type: DOMICILE, numero: '0102030405', usages: { O2S_TYPE: DOMICILE } }], emails: [{ type: PERSONNEL, adresse: jean.dupont@test.local, libelle: "Email d'exemple", usages: { type: 'Usage personnel' } }] } } required: false delete: operationId: utilisateur_delete tags: - Utilisateurs responses: '204': description: "L'utilisateur a bien été supprimé." '400': description: "Une erreur est survenue à la suppression de l'utilisateur." '404': description: "L'utilisateur n'a pas été trouvé." summary: 'Supprimer un utilisateur.' description: 'Supprimer un utilisateur.' parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false '/utilisateurs/{utilisateurId}/responsableId': put: operationId: utilisateur_put_responsable tags: - Utilisateurs responses: '204': description: "Le responsable de l'utilisateur a bien été modifié." '400': description: "Une erreur est survenue à la modification du responsable d'un utilisateur." '404': description: "L'utilisateur n'a pas été trouvé." summary: "Modifier le responsable d'un utilisateur." description: "Modifier le responsable d'un utilisateur." parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: responsableId: type: string examples: [3c30b1de-f71d-11ee-be36-0050568937f2] description: 'Id du responsable de cet utilisateur' examples: exemple: value: responsableId: 3c30b1de-f71d-11ee-be36-0050568937f2 required: false delete: operationId: utilisateur_delete_responsable tags: - Utilisateurs responses: '204': description: "Le responsable de l'utilisateur a bien été supprimé." '400': description: "Une erreur est survenue à la suppression du responsable d'un utilisateur." '404': description: "L'utilisateur n'a pas été trouvé." summary: "Supprimer le responsable d'un utilisateur." description: "Supprimer le responsable d'un utilisateur." parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false '/utilisateurs/{utilisateurId}/statut': put: operationId: utilisateur_put_status tags: - Utilisateurs responses: '204': description: "Le statut de l'utilisateur a bien été modifié." '400': description: "Une erreur est survenue à la modification du statut d'un utilisateur." '404': description: "L'utilisateur n'a pas été trouvé." '422': description: 'Champs Invalides' content: application/json: schema: type: object properties: title: { type: string, examples: ['Données renseignées non valides'] } type: { type: string, examples: ['/o2s-api/Unprocessable Content'] } status: { type: integer, examples: ['422'] } detail: { type: string, examples: ["La valeur renseignée n'est pas valide"] } instance: { type: string, examples: [/api/utilisateurs/a37b7948-4e7f-11ef-bd56-005056839lf2] } summary: "Modifier le statut d'un utilisateur." description: "Modifier le statut d'un utilisateur." parameters: - name: utilisateurId in: path description: 'Utilisateurs identifier' required: true deprecated: false schema: type: string style: simple explode: false requestBody: content: application/json: schema: type: object properties: statut: type: string examples: [ACTIVE] description: "Statut de l'utilisateur (Activé/Désactivé)" examples: exemple: value: statut: ACTIVE required: false components: schemas: Account.details: type: object properties: accountId: type: - string - 'null' accountDetailId: type: - string - 'null' referenceDate: type: - string - 'null' liquidity: type: - number - 'null' totalValue: type: - number - 'null' view: type: - string - 'null' situation: type: array items: $ref: '#/components/schemas/SituationResource' Account.details-accountDetails.post: type: object additionalProperties: false required: - referenceDate - liquidity properties: referenceDate: externalDocs: url: 'https://schema.org/Date' type: - string - 'null' liquidity: type: - number - 'null' situation: type: array items: $ref: '#/components/schemas/SituationResource-accountDetails.post' Account.details-accountDetails.post.response: type: object properties: accountDetailId: type: - string - 'null' Account.details-accountDetails.read: type: object properties: accountDetailId: type: - string - 'null' referenceDate: type: - string - 'null' liquidity: type: - number - 'null' totalValue: type: - number - 'null' view: type: - string - 'null' situation: type: array items: $ref: '#/components/schemas/SituationResource-accountDetails.read' Account.flow: type: object properties: accountFlowId: type: - string - 'null' type: type: - string - 'null' label: type: - string - 'null' status: type: - string - 'null' dateEffect: type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' details: type: array items: $ref: '#/components/schemas/AccountFlowDetailsResource' Account.flow-accountFlow.post: type: object additionalProperties: false required: - type - label - dateEffect - grossAmount properties: type: type: - string - 'null' label: type: - string - 'null' status: type: - string - 'null' dateEffect: externalDocs: url: 'https://schema.org/Date' type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' details: type: array items: $ref: '#/components/schemas/AccountFlowDetailsResource-accountFlow.post' Account.flow-accountFlow.post.response: type: object properties: accountFlowId: type: - string - 'null' Account.flow-accountFlow.read: type: object properties: accountFlowId: type: - string - 'null' type: type: - string - 'null' label: type: - string - 'null' status: type: - string - 'null' dateEffect: type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' details: type: array items: $ref: '#/components/schemas/AccountFlowDetailsResource-accountFlow.read' AccountFlowDetailsResource: type: object properties: assetId: type: - string - 'null' currency: type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' datePricing: type: - string - 'null' AccountFlowDetailsResource-accountFlow.post: type: object additionalProperties: false properties: assetId: type: - string - 'null' currency: type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' datePricing: type: - string - 'null' AccountFlowDetailsResource-accountFlow.read: type: object properties: assetId: type: - string - 'null' currency: type: - string - 'null' grossAmount: type: - number - 'null' netAmount: type: - number - 'null' fees: type: - number - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' datePricing: type: - string - 'null' Accounts: type: object properties: accountId: type: - string - 'null' accountNumber: type: - string - 'null' label: type: - string - 'null' openingDate: type: - string - 'null' productId: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/ComptePerson' required: - label Accounts-compte.patch.jsonMergePatch: type: object additionalProperties: false properties: label: type: - string - 'null' Accounts-compte.post: type: object additionalProperties: false required: - accountNumber - label - openingDate - productId - persons properties: accountNumber: type: - string - 'null' label: type: - string - 'null' openingDate: externalDocs: url: 'https://schema.org/Date' type: - string - 'null' productId: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/ComptePerson-compte.post' Accounts-compte.post.response: type: object properties: accountId: type: - string - 'null' Accounts-compte.read: type: object properties: accountId: type: - string - 'null' accountNumber: type: - string - 'null' label: type: - string - 'null' openingDate: type: - string - 'null' productId: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/ComptePerson-compte.read' Accounts.jsonMergePatch: type: object additionalProperties: false properties: accountId: type: - string - 'null' accountNumber: type: - string - 'null' label: type: - string - 'null' openingDate: type: - string - 'null' productId: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/ComptePerson' AccountsResource-projects.read: type: object properties: accountId: type: - string - 'null' accountNumber: type: - string - 'null' label: type: - string - 'null' AgenceMoyensContact: type: object properties: adresse: anyOf: - $ref: '#/components/schemas/AgenceMoyensContactAdresse' - type: 'null' AgenceMoyensContact-agence.create: type: object additionalProperties: false properties: adresse: anyOf: - $ref: '#/components/schemas/AgenceMoyensContactAdresse-agence.create' - type: 'null' AgenceMoyensContact-agence.read.one: type: object properties: adresse: anyOf: - $ref: '#/components/schemas/AgenceMoyensContactAdresse-agence.read.one' - type: 'null' AgenceMoyensContact-agence.update: type: object additionalProperties: false properties: adresse: anyOf: - $ref: '#/components/schemas/AgenceMoyensContactAdresse-agence.update' - type: 'null' AgenceMoyensContactAdresse: type: object properties: voie: type: - string - 'null' localite: type: - string - 'null' codePostal: type: - string - 'null' codePays: type: - string - 'null' AgenceMoyensContactAdresse-agence.create: type: object additionalProperties: false properties: voie: type: - string - 'null' localite: type: - string - 'null' codePostal: type: - string - 'null' codePays: type: - string - 'null' AgenceMoyensContactAdresse-agence.read.one: type: object properties: voie: type: - string - 'null' localite: type: - string - 'null' codePostal: type: - string - 'null' codePays: type: - string - 'null' AgenceMoyensContactAdresse-agence.update: type: object additionalProperties: false properties: voie: type: - string - 'null' localite: type: - string - 'null' codePostal: type: - string - 'null' codePays: type: - string - 'null' Agences: type: object properties: id: type: - string - 'null' libelle: type: - string - 'null' moyensContact: anyOf: - $ref: '#/components/schemas/AgenceMoyensContact' - type: 'null' Agences-agence.create: type: object additionalProperties: false properties: libelle: type: - string - 'null' moyensContact: anyOf: - $ref: '#/components/schemas/AgenceMoyensContact-agence.create' - type: 'null' Agences-agence.create.response: type: object properties: id: type: - string - 'null' Agences-agence.read: type: object properties: id: type: - string - 'null' libelle: type: - string - 'null' Agences-agence.read.one: type: object properties: id: type: - string - 'null' libelle: type: - string - 'null' moyensContact: anyOf: - $ref: '#/components/schemas/AgenceMoyensContact-agence.read.one' - type: 'null' Agences-agence.update: type: object additionalProperties: false properties: libelle: type: - string - 'null' moyensContact: anyOf: - $ref: '#/components/schemas/AgenceMoyensContact-agence.update' - type: 'null' Assets-asset.read: type: object properties: assetId: type: - string - 'null' label: type: - string - 'null' isin: type: - string - 'null' institutionId: type: - string - 'null' type: type: - string - 'null' currency: type: - string - 'null' AveragePriceResource: type: object properties: averagePriceValue: type: - number - 'null' date: type: - string - 'null' type: type: - string - 'null' AveragePriceResource-accountDetails.post: type: object additionalProperties: false properties: averagePriceValue: type: - number - 'null' date: type: - string - 'null' type: type: - string - 'null' AveragePriceResource-accountDetails.read: type: object properties: averagePriceValue: type: - number - 'null' date: type: - string - 'null' type: type: - string - 'null' Categories: type: object properties: nom: type: string id: type: string parentId: type: - string - 'null' ComptePerson: type: object properties: personId: type: string role: type: string ComptePerson-compte.post: type: object additionalProperties: false properties: personId: type: string role: type: string ComptePerson-compte.read: type: object properties: personId: type: string role: type: string ConstraintViolation: type: object description: 'Unprocessable entity' properties: status: default: 422 type: integer violations: type: array items: type: object properties: propertyPath: type: string description: 'The property path of the violation' message: type: string description: 'The message associated with the violation' code: type: string description: 'The code of the violation' hint: type: string description: 'An extra hint to understand the violation' payload: type: object additionalProperties: true description: 'The serialized payload of the violation' required: - propertyPath - message detail: readOnly: true type: string type: readOnly: true type: string title: readOnly: true type: - string - 'null' instance: readOnly: true type: - string - 'null' ConstraintViolation.jsonld: type: object description: 'Unprocessable entity' properties: status: default: 422 type: integer violations: type: array items: type: object properties: propertyPath: type: string description: 'The property path of the violation' message: type: string description: 'The message associated with the violation' code: type: string description: 'The code of the violation' hint: type: string description: 'An extra hint to understand the violation' payload: type: object additionalProperties: true description: 'The serialized payload of the violation' required: - propertyPath - message detail: readOnly: true type: string description: readOnly: true type: string type: readOnly: true type: string title: readOnly: true type: - string - 'null' instance: readOnly: true type: - string - 'null' Contact.Profile-profile.read: type: object properties: profileId: type: - string - 'null' profileDate: type: - string - 'null' refusalToComplete: type: - string - 'null' externalProfile: type: - string - 'null' experience: anyOf: - $ref: '#/components/schemas/ExperienceResource-profile.read' - type: 'null' knowledge: type: - object - 'null' additionalProperties: type: integer risk: anyOf: - $ref: '#/components/schemas/RiskResource-profile.read' - type: 'null' lossTolerance: anyOf: - $ref: '#/components/schemas/LossToleranceResource-profile.read' - type: 'null' lossToleranceLevel: anyOf: - $ref: '#/components/schemas/LossToleranceLevelResource-profile.read' - type: 'null' esg: anyOf: - $ref: '#/components/schemas/ESGResource-profile.read' - type: 'null' horizon: type: - string - 'null' excludedObjectives: type: - object - 'null' additionalProperties: type: integer CriteriaResource-profile.read: type: object properties: environnementalActivityPercent: type: - number - 'null' environnementalAndSocialObjectifPercent: type: - number - 'null' paiPercent: type: - number - 'null' paiList: type: - object - 'null' additionalProperties: type: integer DocumentContenuResource: type: object properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: string DocumentContenuResource-document.post: type: object additionalProperties: false properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: string DocumentContenuResource-document.read: type: object properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: string DocumentMetaDonneesDonneesResource: type: object properties: cle: type: - string - 'null' valeur: type: - string - 'null' app: type: - string - 'null' DocumentMetaDonneesDonneesResource-document.post: type: object additionalProperties: false properties: cle: type: - string - 'null' valeur: type: - string - 'null' app: type: - string - 'null' DocumentMetaDonneesDonneesResource-document.read: type: object properties: cle: type: - string - 'null' valeur: type: - string - 'null' app: type: - string - 'null' DocumentMetaDonneesResource: type: object properties: donnees: type: array items: $ref: '#/components/schemas/DocumentMetaDonneesDonneesResource' DocumentMetaDonneesResource-document.post: type: object additionalProperties: false properties: donnees: type: array items: $ref: '#/components/schemas/DocumentMetaDonneesDonneesResource-document.post' DocumentMetaDonneesResource-document.read: type: object properties: donnees: type: array items: $ref: '#/components/schemas/DocumentMetaDonneesDonneesResource-document.read' DocumentRessourceLieeResource: type: object properties: type: type: - string - 'null' id: type: - string - 'null' DocumentRessourceLieeResource-document.post: type: object additionalProperties: false properties: type: type: - string - 'null' id: type: - string - 'null' DocumentRessourceLieeResource-document.read: type: object properties: type: type: - string - 'null' id: type: - string - 'null' Documents: type: object properties: id: type: - string - 'null' libelle: type: - string - 'null' type: type: - string - 'null' dateCreation: type: - string - 'null' dateMaj: type: - string - 'null' contenu: anyOf: - $ref: '#/components/schemas/DocumentContenuResource' - type: 'null' ressourcesLiees: type: array items: $ref: '#/components/schemas/DocumentRessourceLieeResource' metaDonnees: anyOf: - $ref: '#/components/schemas/DocumentMetaDonneesResource' - type: 'null' fileContent: readOnly: true type: - string - 'null' uuidContact: readOnly: true type: - string - 'null' Documents-document.post: type: object additionalProperties: false properties: libelle: type: - string - 'null' type: enum: - IDENTITE - AUTRE type: - string - 'null' contenu: anyOf: - $ref: '#/components/schemas/DocumentContenuResource-document.post' - type: 'null' ressourcesLiees: type: array items: $ref: '#/components/schemas/DocumentRessourceLieeResource-document.post' metaDonnees: anyOf: - $ref: '#/components/schemas/DocumentMetaDonneesResource-document.post' - type: 'null' required: - type Documents-document.post.response: type: object properties: id: type: - string - 'null' Documents-document.read: type: object properties: id: type: - string - 'null' libelle: type: - string - 'null' type: type: - string - 'null' dateCreation: type: - string - 'null' dateMaj: type: - string - 'null' contenu: anyOf: - $ref: '#/components/schemas/DocumentContenuResource-document.read' - type: 'null' ressourcesLiees: type: array items: $ref: '#/components/schemas/DocumentRessourceLieeResource-document.read' metaDonnees: anyOf: - $ref: '#/components/schemas/DocumentMetaDonneesResource-document.read' - type: 'null' DurationResource-projects.read: type: object properties: value: type: - string - 'null' unit: type: - string - 'null' ESGResource-profile.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' criteria: anyOf: - $ref: '#/components/schemas/CriteriaResource-profile.read' - type: 'null' Error: type: object description: 'A representation of common errors.' properties: title: readOnly: true description: 'A short, human-readable summary of the problem.' type: - string - 'null' detail: readOnly: true description: 'A human-readable explanation specific to this occurrence of the problem.' type: - string - 'null' status: type: - integer - 'null' examples: - 404 default: 400 instance: readOnly: true description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.' type: - string - 'null' type: readOnly: true description: 'A URI reference that identifies the problem type' type: string Error.jsonld: type: object description: 'A representation of common errors.' properties: title: readOnly: true description: 'A short, human-readable summary of the problem.' type: - string - 'null' detail: readOnly: true description: 'A human-readable explanation specific to this occurrence of the problem.' type: - string - 'null' status: type: - integer - 'null' examples: - 404 default: 400 instance: readOnly: true description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.' type: - string - 'null' type: readOnly: true description: 'A URI reference that identifies the problem type' type: string description: readOnly: true type: - string - 'null' EsgCriteriaResource-projects.read: type: object properties: environnementalActivityPercent: type: - number - 'null' environnementalAndSocialObjectifPercent: type: - number - 'null' paiPercent: type: - number - 'null' paiList: type: - object - 'null' additionalProperties: type: integer EsgResource-projects.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' criteria: anyOf: - $ref: '#/components/schemas/EsgCriteriaResource-projects.read' - type: 'null' ExperienceResource-profile.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' Institutions-institution.read: type: object properties: institutionId: type: - string - 'null' label: type: - string - 'null' InvestmentHorizonResource-projects.read: type: object properties: code: type: - string - 'null' duration: anyOf: - $ref: '#/components/schemas/DurationResource-projects.read' - type: 'null' LossToleranceLevelResource-profile.read: type: object properties: refext: type: - string - 'null' label: type: - string - 'null' LossToleranceResource-profile.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' ParametersResource-projects.read: type: object properties: experience: anyOf: - $ref: '#/components/schemas/ProjectSubResource.ExperienceResource-projects.read' - type: 'null' knowledge: type: - object - 'null' additionalProperties: type: integer risk: anyOf: - $ref: '#/components/schemas/ProjectSubResource.RiskResource-projects.read' - type: 'null' lossTolerance: anyOf: - $ref: '#/components/schemas/ProjectSubResource.LossToleranceResource-projects.read' - type: 'null' lossToleranceLevel: anyOf: - $ref: '#/components/schemas/ProjectSubResource.LossToleranceLevelResource-projects.read' - type: 'null' esg: anyOf: - $ref: '#/components/schemas/EsgResource-projects.read' - type: 'null' investmentHorizon: anyOf: - $ref: '#/components/schemas/InvestmentHorizonResource-projects.read' - type: 'null' objectives: type: - array - 'null' items: type: string excludedObjectives: type: - object - 'null' additionalProperties: type: integer globalPortfolioShare: type: - string - 'null' earlyDisinvestmentRisk: type: - string - 'null' recommendedAllocation: type: - string - 'null' maximumAllowedRisk: type: - string - 'null' PersonResource-projects.list: type: object properties: personId: type: string role: type: string PersonResource-projects.read: type: object properties: personId: type: string role: type: string Pocket-pocket.read: type: object properties: pocketId: type: - string - 'null' pocketLabel: type: - string - 'null' pocketType: type: - string - 'null' institutionId: type: - string - 'null' institutionCode: type: - string - 'null' Pocket.types: type: object required: - pocketType - label properties: pocketType: minLength: 1 maxLength: 255 type: - string - 'null' label: minLength: 1 maxLength: 1023 type: - string - 'null' Products-product.read: type: object properties: productId: type: - string - 'null' label: type: - string - 'null' type: type: - string - 'null' institutionId: type: - string - 'null' Profils: type: object properties: uuid: writeOnly: true type: string id: type: - string - 'null' libelle: type: - string - 'null' Project-projects.list: type: object properties: projectId: type: - string - 'null' label: type: - string - 'null' date: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/PersonResource-projects.list' proposals: type: array items: $ref: '#/components/schemas/ProposalResource-projects.list' Project-projects.read: type: object properties: projectId: type: - string - 'null' label: type: - string - 'null' date: type: - string - 'null' status: type: - string - 'null' recommendedProposal: type: - string - 'null' selectedProposal: type: - string - 'null' persons: type: array items: $ref: '#/components/schemas/PersonResource-projects.read' parameters: anyOf: - $ref: '#/components/schemas/ParametersResource-projects.read' - type: 'null' proposals: type: array items: $ref: '#/components/schemas/ProposalResource-projects.read' ProjectSubResource.ExperienceResource-projects.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' ProjectSubResource.LossToleranceLevelResource-projects.read: type: object properties: refext: type: - string - 'null' label: type: - string - 'null' ProjectSubResource.LossToleranceResource-projects.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' ProjectSubResource.RiskResource-projects.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' ProposalResource-projects.list: type: object properties: proposalId: type: - string - 'null' label: type: - string - 'null' ProposalResource-projects.read: type: object properties: proposalId: type: - string - 'null' label: type: - string - 'null' date: type: - string - 'null' accounts: type: array items: $ref: '#/components/schemas/AccountsResource-projects.read' transactionId: type: - string - 'null' suitability: type: - integer - 'null' clientDecision: type: - string - 'null' dateSignature: type: - string - 'null' Referentiels: type: object required: - code properties: code: minLength: 1 maxLength: 255 type: - string - 'null' uuid: minLength: 1 maxLength: 1023 format: uuid externalDocs: url: 'https://schema.org/identifier' type: - string - 'null' RiskResource-profile.read: type: object properties: position: type: - integer - 'null' label: type: - string - 'null' SituationResource: type: object properties: assetId: type: - string - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' netAssetValueDate: type: - string - 'null' value: type: - number - 'null' currency: type: - string - 'null' pocketId: type: - string - 'null' averagePrice: anyOf: - $ref: '#/components/schemas/AveragePriceResource' - type: 'null' SituationResource-accountDetails.post: type: object additionalProperties: false properties: assetId: type: - string - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' netAssetValueDate: type: - string - 'null' value: type: - number - 'null' currency: type: - string - 'null' averagePrice: anyOf: - $ref: '#/components/schemas/AveragePriceResource-accountDetails.post' - type: 'null' SituationResource-accountDetails.read: type: object properties: assetId: type: - string - 'null' quantity: type: - number - 'null' netAssetValue: type: - number - 'null' netAssetValueDate: type: - string - 'null' value: type: - number - 'null' currency: type: - string - 'null' pocketId: type: - string - 'null' averagePrice: anyOf: - $ref: '#/components/schemas/AveragePriceResource-accountDetails.read' - type: 'null' UtilisateurDonneePersonnelle: type: object properties: civilite: type: - string - 'null' nom: type: - string - 'null' prenoms: type: array items: type: string moyensContact: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContact' - type: 'null' UtilisateurDonneePersonnelle-utilisateur.post: type: object additionalProperties: false properties: civilite: type: - string - 'null' nom: type: - string - 'null' prenoms: type: array items: type: string moyensContact: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContact-utilisateur.post' - type: 'null' UtilisateurDonneePersonnelle-utilisateur.put: type: object additionalProperties: false properties: civilite: type: - string - 'null' nom: type: - string - 'null' prenoms: type: array items: type: string moyensContact: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContact-utilisateur.put' - type: 'null' UtilisateurDonneePersonnelle-utilisateur.read: type: object properties: civilite: type: - string - 'null' nom: type: - string - 'null' prenoms: type: array items: type: string moyensContact: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContact-utilisateur.read' - type: 'null' UtilisateurMoyensContact: type: object properties: adresse: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContactAdresse' - type: 'null' telephones: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactTelephone' emails: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactEmail' UtilisateurMoyensContact-utilisateur.post: type: object additionalProperties: false properties: adresse: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContactAdresse-utilisateur.post' - type: 'null' telephones: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactTelephone-utilisateur.post' emails: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactEmail-utilisateur.post' UtilisateurMoyensContact-utilisateur.put: type: object additionalProperties: false properties: adresse: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContactAdresse-utilisateur.put' - type: 'null' telephones: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactTelephone-utilisateur.put' emails: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactEmail-utilisateur.put' UtilisateurMoyensContact-utilisateur.read: type: object properties: adresse: anyOf: - $ref: '#/components/schemas/UtilisateurMoyensContactAdresse-utilisateur.read' - type: 'null' telephones: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactTelephone-utilisateur.read' emails: type: array items: $ref: '#/components/schemas/UtilisateurMoyensContactEmail-utilisateur.read' UtilisateurMoyensContactAdresse: type: object properties: intitule: type: - string - 'null' identification: type: - string - 'null' immeuble: type: - string - 'null' voie: type: - string - 'null' codePostal: type: - string - 'null' localite: type: - string - 'null' codePays: type: - string - 'null' UtilisateurMoyensContactAdresse-utilisateur.post: type: object additionalProperties: false properties: intitule: type: - string - 'null' identification: type: - string - 'null' immeuble: type: - string - 'null' voie: type: - string - 'null' codePostal: type: - string - 'null' localite: type: - string - 'null' codePays: type: - string - 'null' UtilisateurMoyensContactAdresse-utilisateur.put: type: object additionalProperties: false properties: intitule: type: - string - 'null' identification: type: - string - 'null' immeuble: type: - string - 'null' voie: type: - string - 'null' codePostal: type: - string - 'null' localite: type: - string - 'null' codePays: type: - string - 'null' UtilisateurMoyensContactAdresse-utilisateur.read: type: object properties: intitule: type: - string - 'null' identification: type: - string - 'null' immeuble: type: - string - 'null' voie: type: - string - 'null' codePostal: type: - string - 'null' localite: type: - string - 'null' codePays: type: - string - 'null' UtilisateurMoyensContactEmail: type: object properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactEmail-utilisateur.post: type: object additionalProperties: false properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactEmail-utilisateur.put: type: object additionalProperties: false properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactEmail-utilisateur.read: type: object properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactTelephone: type: object properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactTelephone-utilisateur.post: type: object additionalProperties: false properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactTelephone-utilisateur.put: type: object additionalProperties: false properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - object - 'null' UtilisateurMoyensContactTelephone-utilisateur.read: type: object properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - object - 'null' UtilisateurRefExterne: type: object properties: O2S: type: - string - 'null' O2S-CODE: type: - string - 'null' UtilisateurRefExterne-utilisateur.post: type: object additionalProperties: false properties: O2S-CODE: type: - string - 'null' UtilisateurRefExterne-utilisateur.put: type: object additionalProperties: false properties: O2S-CODE: type: - string - 'null' UtilisateurRefExterne-utilisateur.read: type: object properties: O2S: type: - string - 'null' O2S-CODE: type: - string - 'null' Utilisateurs: type: object properties: id: type: - string - 'null' dateCreation: type: - string - 'null' dateMaj: type: - string - 'null' profilId: type: - string - 'null' refExternes: anyOf: - $ref: '#/components/schemas/UtilisateurRefExterne' - type: 'null' login: type: - string - 'null' responsableId: type: - string - 'null' statut: enum: - ACTIVE - DESACTIVE type: - string - 'null' agenceIds: type: - array - 'null' items: type: string donneesPersonnelles: anyOf: - $ref: '#/components/schemas/UtilisateurDonneePersonnelle' - type: 'null' Utilisateurs-utilisateur.post: type: object additionalProperties: false required: - profilId - login properties: profilId: type: - string - 'null' refExternes: anyOf: - $ref: '#/components/schemas/UtilisateurRefExterne-utilisateur.post' - type: 'null' login: type: - string - 'null' responsableId: type: - string - 'null' statut: type: - string - 'null' agenceIds: type: - array - 'null' items: type: string donneesPersonnelles: anyOf: - $ref: '#/components/schemas/UtilisateurDonneePersonnelle-utilisateur.post' - type: 'null' Utilisateurs-utilisateur.post.response: type: object properties: id: type: - string - 'null' Utilisateurs-utilisateur.put: type: object additionalProperties: false properties: profilId: type: - string - 'null' refExternes: anyOf: - $ref: '#/components/schemas/UtilisateurRefExterne-utilisateur.put' - type: 'null' responsableId: type: - string - 'null' statut: enum: - ACTIVE - DESACTIVE type: - string - 'null' agenceIds: type: - array - 'null' items: type: string donneesPersonnelles: anyOf: - $ref: '#/components/schemas/UtilisateurDonneePersonnelle-utilisateur.put' - type: 'null' Utilisateurs-utilisateur.put_responsable: type: object additionalProperties: false properties: responsableId: type: - string - 'null' Utilisateurs-utilisateur.put_status: type: object additionalProperties: false properties: statut: enum: - ACTIVE - DESACTIVE type: - string - 'null' Utilisateurs-utilisateur.read: type: object properties: id: type: - string - 'null' dateCreation: type: - string - 'null' dateMaj: type: - string - 'null' profilId: type: - string - 'null' refExternes: anyOf: - $ref: '#/components/schemas/UtilisateurRefExterne-utilisateur.read' - type: 'null' responsableId: type: - string - 'null' statut: type: - string - 'null' agenceIds: type: - array - 'null' items: type: string donneesPersonnelles: anyOf: - $ref: '#/components/schemas/UtilisateurDonneePersonnelle-utilisateur.read' - type: 'null' responses: { } parameters: { } examples: { } requestBodies: { } headers: { } securitySchemes: { } security: [] tags: - name: 'Account details' description: "Resource 'Account details' operations." - name: 'Account flow' description: "Resource 'Account flow' operations." - name: Assets description: "Resource 'Assets' operations." - name: Accounts description: "Resource 'Accounts' operations." - name: Institutions description: "Resource 'Institutions' operations." - name: Pocket description: "Resource 'Pocket' operations." - name: 'Pocket types' description: "Resource 'Pocket types' operations." - name: Products description: "Resource 'Products' operations." - name: 'Contact Profile' description: "Resource 'Contact Profile' operations." - name: Categories description: "Resource 'Categories' operations." - name: Documents description: "Resource 'Documents' operations." - name: Project description: "Resource 'Project' operations." - name: Referentiels description: "Resource 'Referentiels' operations." - name: Agences description: "Resource 'Agences' operations." - name: Profils description: "Resource 'Profils' operations." - name: Utilisateurs description: "Resource 'Utilisateurs' operations." webhooks: { }