openapi: 3.0.1 info: title: Stand In Account Check Service – Real Time Account Update description: Stand In Account Check Service OpenAPI Specification for the management of the Account Status updates from the customer to the SIAC module version: 1.4.0 tags: - name: Stand In Account Check description: Stand In Account Check endpoint paths: /account: get: tags: - Stand In Account Check summary: Get accounts description: | Get accounts from repository. Filter options: iban, status, reasonCode, timestamp. Pagination options: page, size. Sorting options: sortBy, order. operationId: getAccounts parameters: - name: iban in: query description: Filter by IBAN required: false schema: type: string example: FR7630004000031234567890143 - name: ibanGreater in: query description: Filter by IBAN following the provided value in alphabetical order required: false schema: type: string example: FR7630004000031234567890143 - name: status in: query description: Filter by status required: false schema: type: string enum: - OPEN - CLOSED example: OPEN - name: reasonCode in: query description: Filter by reason code required: false schema: type: string example: '0000' - name: timestampEquals in: query description: Filter by exact timestamp required: false schema: type: string example: '2023-07-21T17:32:28.120Z' - name: timestampFrom in: query description: Filter by timestamp from (range filtering if timestampTo is provided) required: false schema: type: string example: '2023-07-21T17:32:28.120Z' - name: timestampTo in: query description: Filter by timestamp to (range filtering if timestampFrom is provided) required: false schema: type: string example: '2023-07-21T17:32:28.120Z' - name: page in: query description: Page number for pagination (1 to 9999 included) required: false schema: maximum: 9999 minimum: 1 type: integer example: 5 - name: size in: query description: Number of items per page for pagination (1 to 9999 included) required: false schema: maximum: 9999 minimum: 1 type: integer example: 200 - name: sortBy in: query description: Field to sort by required: false schema: type: string - name: order in: query description: Sort order (asc or desc) required: false schema: type: string enum: - asc - desc responses: '200': description: Successfully updated headers: X-Total-Count: description: Total number of rows matching the parameters, excluding those for pagination. style: simple schema: type: integer content: application/json: schema: $ref: '#/components/schemas/AccountContainer' example: - iban: FR7630004000031234567890143 status: OPEN reasonCode: '0000' timestamp: '2023-07-21T17:32:28.120Z' '400': description: Bad request, parameters are not valid, not correctly used or not sufficiently restrictive headers: X-Total-Count: description: | style: simple schema: type: integer content: application/json: schema: $ref: '#/components/schemas/AccountGatewayContainer' examples: Invalid format: description: Invalid format for at least one of the parameters value: returnCode: KO reasonLabel: Invalid format reasonDescription: The value [2024-09-17T09:45:12.988Z] for [status] is invalid. Invalid combination: description: Invalid combination between at least two parameters value: returnCode: KO reasonLabel: Invalid combination reasonDescription: Incompatible operations between [Equals] and [To] for [timestamp]. Invalid pagination: description: Invalid format for at least one of the parameters used to perform pagination value: returnCode: KO reasonLabel: Invalid pagination reasonDescription: Value [desc] for the pagination's property [size] is invalid. Too many results: description: The request is not sufficiently restrictive value: returnCode: KO reasonLabel: Too many results reasonDescription: 'Too many rows to return: 736 rows selected (limited to 500). Please refine your search.' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: An Internal error during account update '504': description: Gateway Timeout put: tags: - Stand In Account Check summary: Batch update accounts description: Update multiple accounts. If an account is unknown, it will be created.
Update is actually done by replacing the existing data account with the new ones provided. operationId: updateMultipleAccount requestBody: description: List of account data content: application/json: schema: type: array items: $ref: '#/components/schemas/AccountContainer' required: true responses: '200': description: Successfully updated headers: X-Affected-Count: description: Number of affected accounts style: simple schema: type: integer X-Data-Size: description: Number of accounts in the request style: simple schema: type: integer '400': description: Invalid json / bad request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account update '504': description: Gateway Timeout post: tags: - Stand In Account Check summary: Create new account / accounts description: Create new account, or accounts if several are provided.
This endpoint is dedicated to account creation, not update. If you want to update an existing account, use the PUT method on /account/{IBAN} endpoint. operationId: createAccount requestBody: description: Account data or list of account data. content: application/json: schema: oneOf: - $ref: '#/components/schemas/AccountContainer' - type: array items: $ref: '#/components/schemas/AccountContainer' example: iban: FR7630004000031234567890143 status: OPEN reasonCode: '0000' timestamp: '2023-07-21T17:32:28.120Z' required: true responses: '201': description: Successfully created headers: X-Affected-Count: description: Number of affected accounts style: simple schema: type: integer X-Data-Size: description: Number of accounts in the request style: simple schema: type: integer '400': description: Invalid json / bad request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account creation '504': description: Gateway Timeout delete: tags: - Stand In Account Check summary: Delete a batch of accounts description: Delete multiple accounts. If an account is unknown, it will be ignored. operationId: deleteMultipleAccounts requestBody: description: List of the IBAN of the accounts to delete content: application/json: schema: type: array items: pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$ type: string example: FR7630004000031234567890143 example: - FR7630004000031234567890143 - FR7630004000031234567890144 required: true responses: '200': description: Successfully updated headers: X-Affected-Count: description: Number of affected accounts style: simple schema: type: integer X-Data-Size: description: Number of accounts in the request style: simple schema: type: integer '400': description: Invalid json / bad request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account update '504': description: Gateway Timeout /account/{IBAN}: get: tags: - Stand In Account Check summary: Get an account description: Get an account from repository operationId: getAccountByIban parameters: - name: IBAN in: path description: IBAN of the account to retrieve required: true schema: type: string example: FR7630004000031234567890143 responses: '200': description: Successfully retrieved content: application/json: schema: $ref: '#/components/schemas/AccountContainer' example: iban: FR7630004000031234567890143 status: OPEN reasonCode: '0000' timestamp: '2023-07-21T17:32:28.120Z' '400': description: Bad request, parameters are not valid '401': description: Unauthorized '403': description: Forbidden '404': description: Account not found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account retrieval '504': description: Gateway Timeout put: tags: - Stand In Account Check summary: Create or update an account description: Update an already known account or create if unknown.
Update is actually done by replacing the existing data account with the new one provided. operationId: updateAccount parameters: - name: IBAN in: path description: IBAN of the account to replace / create required: true schema: type: string example: FR7630004000031234567890143 requestBody: description: Account data content: application/json: schema: $ref: '#/components/schemas/AccountContainer' required: true responses: '200': description: Successfully updated / created headers: X-Affected-Count: description: Number of affected accounts style: simple schema: type: integer X-Data-Size: description: Number of accounts in the request style: simple schema: type: integer '400': description: Bad request, parameters are not valid '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account update '504': description: Gateway Timeout delete: tags: - Stand In Account Check summary: Delete an already known account description: Delete an already known account operationId: deleteAccount parameters: - name: IBAN in: path description: IBAN of the account to delete required: true schema: type: string example: FR7630004000031234567890143 responses: '200': description: Successfully deleted headers: X-Affected-Count: description: Number of affected accounts style: simple schema: type: integer X-Data-Size: description: Number of accounts in the request style: simple schema: type: integer '400': description: Bad request, parameters are not valid '401': description: Unauthorized '403': description: Forbidden '404': description: Account not found '405': description: Method Not Allowed '409': description: Conflict '415': description: Unsupported Media Type '429': description: Too Many Requests '500': description: Internal error during account deletion '504': description: Gateway Timeout components: schemas: AccountContainer: required: - iban - reasonCode - status - timestamp type: object properties: iban: pattern: 'pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$' type: string description: International Bank Account Number example: AL4721211009000000023569874112 status: pattern: ^(OPEN|CLOSED)$ type: string description: Account status example: OPEN enum: - OPEN - CLOSED reasonCode: maxLength: 4 type: string description: Reason code for account status if any example: '0000' timestamp: pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}(Z|[+-]\d{2}:\d{2})?$ type: string description: Timestamp in the format yyyy-MM-ddTHH:mm:ss.SSS with optional timezone, default timezone if not provided is Central European Time (CET) example: '2024-06-18T17:32:28.120Z' description: Account details example: iban: FR7630004000031234567890143 status: OPEN reasonCode: '0000' timestamp: '2023-07-21T17:32:28.120Z' AccountGatewayContainer: required: - reasonDescription - reasonLabel - returnCode type: object properties: returnCode: pattern: KO type: string description: Return code from the gateway. Always valued with 'KO' example: KO reasonLabel: type: string description: Reason for rejection example: Invalid format enum: - Invalid format - Invalid combination - Invalid pagination - Too many results reasonDescription: type: string description: Specify the reason for rejection example: The value [2024-09-17T09:45:12.988Z] for [status] is invalid.