openapi: 3.2.0 info: title: FX Trade Report API description: 'This API provides access to open and historical FX trade reports. **Historical Trade Reports** - can be viewed by providing a specific date range via the `dateFrom` and `dateTo` parameters. **Filtering** - result set can be reduced by providing a filter parameter `counterparts`. **Pagination** - the API also supports pagination, allowing users to retrieve a specific number of records per page - `offset` and `limit` parameters.' version: 1.0.0 x-db-template-version: 1.0.0 servers: - description: Mock Environment - All possible response codes are randomly generated url: https://mock-api.danskebank.com/mock/sandbox/1.0.0/fx-open-and-historical-trades-api/v1/open-trades-service - description: PROD Environment url: https://api.danskebank.com/corporate/api/v1/open-trades-service - description: SANDBOX Environment url: https://sandbox-api.danskebank.com/sandbox-corporate/api/v1/open-trades-service security: - BearerAuth: [] tags: - name: FX Trade Report description: Trade Report for Premium API users paths: /trade-reports/trade/{tradeId}: get: tags: - FX Trade Report summary: Gets trade details by ID description: Provides trade information for a specific trade based on provided trade ID operationId: getTrade parameters: - name: tradeId in: path description: Unique identifier for the executed trade. required: true schema: type: string example: TRADE123456 responses: '200': description: Trade details found content: application/json: schema: $ref: '#/components/schemas/ExternalTrade' examples: example1: summary: Success response value: tradeId: T250711A8787 tradeTime: '2025-10-10T06:53:28.541Z' counterpart: DEMOCP1 counterpartName: DEMOCP maturityDate: '2025-10-10' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: Forward spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: Urgent client request example2: summary: Success response 2 value: tradeId: W250429A1139 tradeTime: '2025-04-29T13:57:59.523Z' counterpart: DBDEMO1 counterpartName: DANSKE BANK DEMOAA maturityDate: '2025-05-23' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: FWD spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: The transaction is successful '400': description: Bad Request content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: BadRequest message: Invalid tradeId format. timestamp: '2025-10-07T10:30:00Z' '401': description: Unauthorized content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: AuthenticationException message: 'Session token validation failed: No key found in https://issuer.danskenet.net/.well-known/jwks.json with kid 6BBDAAA362B8C700FD2FF24BE979697DE0A58F5D.' timestamp: '2025-10-10T06:49:23.712321Z' '403': description: Forbidden content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: Forbidden message: You do not have permission to access this resource. timestamp: '2025-10-07T10:30:00Z' '404': description: Trade details not found content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: NotFound message: Trade details not found for the given tradeId. timestamp: '2025-10-07T10:30:00Z' '413': description: Payload Too Large content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: PayloadTooLarge message: Request payload too large. timestamp: '2025-10-07T10:30:00Z' '500': description: Error while fetching Trade details content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: ServerError message: An unexpected error occurred while fetching trade details. timestamp: '2025-10-07T10:30:00Z' /trade-reports/open: get: tags: - FX Trade Report summary: Gets all Open Trades for a given district user ID, based on maturity date. description: Retrieves all Open Trades for a provided district user ID, optionally filtered by counterparts. Results are based on maturity/settlement date.
Pagination is supported with 'offset' defining the starting point and 'limit' specifying the number of records per page.
The response includes links for previous and next pages. operationId: getOpenTrades parameters: - name: offset in: query required: false schema: type: integer format: int32 default: 0 description: Starting point of the records to retrieve (pagination). example: 0 - name: limit in: query required: false schema: type: integer format: int32 default: 30 description: Number of records to retrieve per page (pagination). example: 30 - name: counterparts in: query required: false schema: type: array items: type: string description: List of counterpart IDs to filter the trades. example: - CP123 - CP456 responses: '200': description: List of Open Trades for the user content: application/json: schema: $ref: '#/components/schemas/PaginatedListExternalTrade' examples: example1: summary: Success response value: items: - tradeId: T250711A8787 tradeTime: '2025-10-10T06:44:22.702Z' counterpart: DEMOCP1 counterpartName: DEMOCP maturityDate: '2025-10-10' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: Forward spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: Urgent client request next: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=5&limit=5 previous: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=4&limit=5 example2: summary: Success response 2 value: items: - tradeId: W250429A1139 tradeTime: '2025-04-29T13:57:59.523Z' counterpart: DBDEMO1 counterpartName: DANSKE BANK DEMOAA maturityDate: '2025-05-23' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: FWD spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: Successful retrieval of open trades. next: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=5&limit=5 previous: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=4&limit=5 '400': description: Bad Request content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: BadRequest message: The limit parameter must be a positive integer. timestamp: '2025-10-07T10:30:00Z' '401': description: Unauthorized content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: AuthenticationException message: 'Session token validation failed: No key found in https://issuer.danskenet.net/.well-known/jwks.json with kid 6BBDAAA362B8C700FD2FF24BE979697DE0A58F5D.' timestamp: '2025-10-10T06:49:23.712321Z' '403': description: Forbidden content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: Forbidden message: You do not have permission to access this resource. timestamp: '2025-10-07T10:30:00Z' '404': description: No Open Trades found for the user content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: NotFound message: No open trades found for the given parameters. timestamp: '2025-10-07T10:30:00Z' '413': description: Response Payload too large content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: PayloadTooLarge message: Request payload too large. timestamp: '2025-10-07T10:30:00Z' '500': description: Error while fetching user details content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: ServerError message: An unexpected error occurred while fetching open trades. timestamp: '2025-10-07T10:30:00Z' /trade-reports: get: tags: - FX Trade Report summary: Retrieves historical trades for a given district user ID within a date range, based on trade execution date. description: Retrieves Historical Trades for a provided district user ID within a given date range, optionally filtered by counterparts. Results are based on trade execution date.
Pagination is supported with 'offset' defining the starting point and 'limit' specifying the number of records per page.
The response includes links for previous and next pages. operationId: getHistoricalTrades parameters: - name: startDate in: query required: true schema: type: string description: Start date for the date range in YYYY-MM-DD format. example: '2025-01-01' - name: endDate in: query required: false schema: type: string description: End date for the date range in YYYY-MM-DD format. example: '2025-01-31' - name: counterparts in: query required: false schema: type: array items: type: string description: List of counterpart IDs to filter the trades. example: - CP123 - CP456 - name: offset in: query required: false schema: type: integer format: int32 default: 0 description: Starting point of the records to retrieve (pagination). example: 0 - name: limit in: query required: false schema: type: integer format: int32 default: 30 description: Number of records to retrieve per page (pagination). example: 30 responses: '200': description: Trades found content: application/json: schema: $ref: '#/components/schemas/PaginatedListExternalTrade' examples: example1: summary: Success response value: items: - tradeId: T250711A8787 tradeTime: '2025-10-10T06:44:22.702Z' counterpart: DEMOCP1 counterpartName: DEMOCP maturityDate: '2025-10-10' bought: currency: DKK amount: 14500 sold: currency: USD amount: 2079.32 product: Forward spotPrice: 7.23 forwardPrice: 0.0002 allInPrice: 7.2302 autoSettle: true comment: Urgent client request next: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=5&limit=5 previous: https://api.example.com/trade-reports?startDate=2025-05-10&endDate=2025-05-20&offset=0&limit=5 example2: summary: Success response 2 value: items: - tradeId: W250429A1139 tradeTime: '2025-04-29T13:57:59.523Z' counterpart: DBDEMO1 counterpartName: DANSKE BANK DEMOAA maturityDate: '2025-05-23' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: FWD spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: Successful retrieval of trades next: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=5&limit=5 previous: https://api.example.com/trade-reports?startDate=2025-05-20&endDate=2025-05-30&offset=4&limit=5 '400': description: Bad Request content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: BadRequest message: The startDate parameter is required. timestamp: '2025-10-07T10:30:00Z' '401': description: Unauthorized content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: AuthenticationException message: 'Session token validation failed: No key found in https://issuer.danskenet.net/.well-known/jwks.json with kid 6BBDAAA362B8C700FD2FF24BE979697DE0A58F5D.' timestamp: '2025-10-10T06:49:23.712321Z' '403': description: Forbidden content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: Forbidden message: You do not have permission to access this resource. timestamp: '2025-10-07T10:30:00Z' '404': description: Trades not found content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: NotFound message: No trades found for the given parameters. timestamp: '2025-10-07T10:30:00Z' '413': description: Response Payload too large content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: PayloadTooLarge message: Request payload too large. timestamp: '2025-10-07T10:30:00Z' '500': description: Error while fetching Trades content: '*/*': schema: type: object properties: error: $ref: '#/components/schemas/TradeError' example: exception: ServerError message: An unexpected error occurred while fetching trades. timestamp: '2025-10-07T10:30:00Z' components: schemas: Amount: type: object properties: currency: type: string description: Currency code in ISO 4217 format. example: USD amount: type: number description: Monetary value. example: 100000.5 PaginatedListExternalTrade: type: object properties: items: type: array items: $ref: '#/components/schemas/ExternalTrade' example: tradeId: W250429A1139 tradeTime: '2025-04-29T13:57:59.523Z' counterpart: DBDEMO1 counterpartName: DANSKE BANK DEMOAA maturityDate: '2025-05-23' bought: currency: DKK amount: 7.46 sold: currency: EUR amount: 1 product: FWD spotPrice: 7.46372 forwardPrice: -0.0066376 allInPrice: 7.4570824 autoSettle: true comment: Successful retrieval of trades next: type: string description: URL to fetch the next page of results. example: /v1/open-trades-service/trade-reports?startDate=2025-01-01&endDate=2025-01-31&offset=30&limit=30 previous: type: string description: URL to fetch the previous page of results. example: /v1/open-trades-service/trade-reports?startDate=2025-01-01&endDate=2025-01-31&offset=0&limit=30 TradeError: type: object properties: timestamp: type: string format: date-time description: Timestamp indicating when the error occurred. example: '2025-10-07T10:41:00Z' exception: type: string description: Type of the exception encountered. example: InvalidParameterException message: type: string description: Detailed error message. example: End date can not be future date. ExternalTrade: type: object properties: tradeTime: type: string format: date-time description: Time when the trade was executed. example: '2025-10-07T09:30:00Z' tradeId: type: string description: Unique identifier for the executed trade. example: TRADE123456 counterpart: type: string description: Counterpart's unique identifier. example: - CP123 - CP456 counterpartName: type: string description: Name of the counterpart. example: Counterpart Inc. maturityDate: type: string description: Maturity or settlement date of the trade. format: date example: '2025-12-31' bought: $ref: '#/components/schemas/Amount' sold: $ref: '#/components/schemas/Amount' product: type: string description: Type of the FX Trade (Spot, Forward, Swap) example: Forward spotPrice: type: number description: The spot price at which the trade was executed. example: 7.23 forwardPrice: type: number description: The forward price agreed upon for the trade. example: 0.0002 allInPrice: type: number description: All-in price of the trade. example: 7.2302 autoSettle: type: boolean description: Indicates whether the trade is auto-settled. example: true comment: type: string description: Additional comments about the trade. example: Urgent trade settlement. securitySchemes: BearerAuth: description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"' type: http scheme: bearer bearerFormat: JWT