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.90.7 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: false 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: false 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: false 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: false 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: 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: false 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: false 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: - Catégories 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: false '/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: false - 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: false - name: limit in: query description: 'Nombre maximum de documents à retourner' required: false deprecated: false schema: type: integer style: form explode: false example: 20 - name: offset in: query description: 'Indice (0-based) du premier document à retourner' required: false deprecated: false schema: type: integer style: form explode: false 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: false 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: false /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: 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' 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' 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' Cat..gories: 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' 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' 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: - array - 'null' items: type: 'null' 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: - array - 'null' items: type: 'null' CriteriaResource-profile.read: type: object properties: environnementalActivityPercent: type: - number - 'null' environnementalAndSocialObjectifPercent: type: - number - 'null' paiPercent: type: - number - 'null' paiList: type: - array - 'null' items: type: 'null' DocumentContenuResource: type: object properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: 'null' DocumentContenuResource-document.post: type: object additionalProperties: false properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: 'null' DocumentContenuResource-document.read: type: object properties: nature: type: - string - 'null' format: type: - string - 'null' donnees: type: - array - 'null' items: type: 'null' 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' 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: number 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: number 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' 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' 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' 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' 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: - array - 'null' items: type: 'null' UtilisateurMoyensContactEmail-utilisateur.post: type: object additionalProperties: false properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactEmail-utilisateur.put: type: object additionalProperties: false properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactEmail-utilisateur.read: type: object properties: type: type: - string - 'null' adresse: type: - string - 'null' libelle: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactTelephone: type: object properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactTelephone-utilisateur.post: type: object additionalProperties: false properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactTelephone-utilisateur.put: type: object additionalProperties: false properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - array - 'null' items: type: 'null' UtilisateurMoyensContactTelephone-utilisateur.read: type: object properties: type: type: - string - 'null' numero: type: - string - 'null' usages: type: - array - 'null' items: type: '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: 'null' 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: 'null' 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' login: type: - string - 'null' responsableId: type: - string - 'null' statut: enum: - ACTIVE - DESACTIVE type: - string - 'null' agenceIds: type: - array - 'null' items: type: 'null' 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: 'null' donneesPersonnelles: anyOf: - $ref: '#/components/schemas/UtilisateurDonneePersonnelle-utilisateur.read' - type: 'null' responses: { } parameters: { } examples: { } requestBodies: { } headers: { } securitySchemes: oAuthSample: description: '' JWT: description: '' security: - JWT: [] - oAuthSample: [] tags: - name: 'Account details' description: "Resource 'Account details' 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: Catégories description: "Resource 'Catégories' operations." - name: Documents description: "Resource 'Documents' 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: { }