openapi: 3.0.1 info: title: 3DS 3DS actions ForeignExchange API description: "Protect your business and meet regulatory requirements by verifying your customer's identity.\n\n__Authentication header__\n ```\n Authorization: {your_credentials}\n ```\nReplace `{your_credentials}` with your base64-encoded Basic Auth username and password given to your by your Worldpay Implementation Manager.\n

\n\nYou **must** use the `Authorization` header for any request you send to our 3DS API.\n\n__Accept/Content-Type header__\n ```\n Content-Type: application/vnd.worldpay.verifications.customers-v3.hal+json\n Accept: application/vnd.worldpay.verifications.customers-v3.hal+json\n ```\nWe use the Accept header to identify which version of our API you are using. You must use the Accept header for any request you send to our 3DS API.\n\nWe require the Content-Type header if the request you're sending includes a request body, and if the HTTP method is a `POST` or a `PUT`.\n

\n\n\n__DNS whitelisting__ \nWhitelist the following URLs:\n* `https://try.access.worldpay.com/`\n* `https://access.worldpay.com/`\n\nPlease ensure you use DNS whitelisting, not explicit IP whitelisting." version: '3' x-metadata: category: - 3DS - SCA Exemptions business: - Enterprise catalog-list: true generated: false servers: - url: https://try.access.worldpay.com description: Test (Try) - url: https://access.worldpay.com description: Live security: - BasicAuth: [] tags: - name: ForeignExchange paths: /foreignExchange/rates: get: summary: Get FX rates description: Retrieve an FX rate for a particular payment method. operationId: getFXrates parameters: - name: intent in: query description: Transaction type (intention) for which rates should be retrieved. required: false schema: type: string minLength: 1 maxLength: 50 enum: - PAYOUT - FX DEAL - MULTI-CURRENCY PRICING - CONSUMER RATES - PAYOUT LIVE RATE - name: entity in: query description: For Multi-Currency Pricing customers, the `entity` is an MCP Account Identifier (PartyID- Merchant Company ID, Unique ID given to you during the onboarding process.) for which rates should be retrieved.

For Account Payout customers, the `entity` is a six-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. required: false example: '100001' schema: type: string minLength: 6 maxLength: 6 - name: sourceCurrency in: query description: The transaction currency code. If not supplied, the response contains rates for all source currencies against the target currency. required: false example: USD schema: $ref: '#/components/schemas/CurrencyCode' minLength: 3 maxLength: 3 - name: targetCurrency in: query description: Your funding (settlement) currency code. If not supplied, the response contains rates for all target currencies against the source currency. required: false example: EUR schema: $ref: '#/components/schemas/CurrencyCode' minLength: 3 maxLength: 3 - in: header name: Accept required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 responses: '200': description: OK response if the request is valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ExternalRateResponse' '400': description: BAD REQUEST response if the request is not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse400' examples: intent is not correct: value: validationErrors: - queryParameter: Intent errorName: fieldHasInvalidValue message: Intent is not valid for the current Consumer. errorName: urlContainsInvalidValue message: The URL contains a value or values that are invalid source currency is not valid: value: validationErrors: - queryParameter: SourceCurrency errorName: fieldHasInvalidValue message: Invalid SourceCurrency value. errorName: urlContainsInvalidValue message: The URL contains a value or values that are invalid target currency is not valid: value: validationErrors: - queryParameter: TargetCurrency errorName: fieldHasInvalidValue message: Invalid TargetCurrency value errorName: urlContainsInvalidValue message: The URL contains a value or values that are invalid '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: No rates found '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange /foreignExchange/quote: post: summary: Create FX quote description: Lock the FX rate for a specific currency pairing.
For Account Payouts customers only. operationId: postFXquote parameters: - in: header name: Accept required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 requestBody: content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/postCreateQuoteItems' examples: Create a new quote: value: entity: '100001' intent: PAYOUT sourceCurrency: USD targetCurrency: EUR responses: '200': description: OK response if the request is valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ExternalPostQuoteResponse' '400': description: BAD REQUEST response if the request is not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse400Quote' examples: intent is not valid: value: validationErrors: - jsonPath: Intent errorName: fieldHasInvalidValue message: Missing Intent value. errorName: bodyDoesNotMatchSchema message: The json body provided does not match the expected schema source currency is not valid: value: validationErrors: - jsonPath: SourceCurrency errorName: fieldHasInvalidValueg message: Invalid SourceCurrency value. errorName: urlContainsInvalidValue message: The json body provided does not match the expected schema target currency is not valid: value: validationErrors: - jsonPath: TargetCurrency errorName: fieldHasInvalidValue message: Invalid TargetCurrency value. errorName: urlContainsInvalidValue message: The json body provided does not match the expected schema '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: No rate found for given input '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange get: summary: Retrieve an FX quote description: Retrieving an existing FX quote.
For Account Payouts customers only. operationId: getFXquote parameters: - name: entity in: query description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. required: true example: '100001' schema: type: string maxLength: 6 - name: quoteId in: query description: Unique ID of the quote. required: true example: Q000000001 schema: type: string minLength: 1 maxLength: 50 - name: Accept in: header required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 responses: '200': description: OK response if the request is valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ExternalGetQuoteResponse' '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: Quote for given input does not exist '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange /foreignExchange/contract: post: summary: Create an external contract description: Create an external contract to lock a forward FX rate.
For Account Payouts customers only. operationId: postContract parameters: - name: Accept in: header required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 requestBody: content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/postCreateContractItems' examples: Create a new contract: value: effectiveDate: '2025-12-31' sourceCurrency: USD targetCurrency: EUR targetAmount: 1.23 entity: '100001' customerReference: Customer 001 responses: '200': description: OK response if the request is valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ExternalPostContractResponse' '400': description: BAD REQUEST response if the request is not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse400Quote' examples: EffectiveDate is longer than 30 days: value: validationErrors: - jsonPath: EffectiveDate errorName: fieldHasInvalidValueg message: EffectiveDate must be within the next 30 days. errorName: bodyDoesNotMatchSchema message: The json body provided does not match the expected schema source currency is not valid: value: validationErrors: - jsonPath: SourceCurrency errorName: fieldHasInvalidValueg message: Invalid SourceCurrency value. errorName: bodyDoesNotMatchSchema message: The json body provided does not match the expected schema target currency is not valid: value: validationErrors: - jsonPath: TargetCurrency errorName: fieldHasInvalidValue message: Invalid TargetCurrency value. errorName: bodyDoesNotMatchSchema message: The json body provided does not match the expected schema '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: Not found '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange /foreignExchange/contract/{contractId}: put: summary: Activate or cancel contract description: Enable a contract to use locked in FX rates in an Account Payout.
For Account Payouts customers only. operationId: putContract parameters: - name: Accept in: header required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 - name: contractId in: path description: Unique ID of the contract. required: true schema: type: string minLength: 1 maxLength: 50 example: C000000001 requestBody: content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/putActivatedContractItems' examples: Activate contract: value: status: ACTIVE entity: '100001' Cancel contract: value: status: CANCELLED entity: '100001' responses: '204': description: OK response if the request is valid '400': description: BAD REQUEST response if the status of the contract is not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse400Contract' examples: status is not correct: value: errorName: invalidInput message: The input received is not valid '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: Quote for given input does not exist '409': description: CONFLICT response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: when a contract is re-activated or re-cancelled: value: errorName: conflict message: Current status of the contract is invalid for requested transition '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange /foreignExchange/markup/{entity}: put: summary: Add a markup to your FX rate description: Adding a markup to an existing FX rate.
For MCP customers only. operationId: addMarkup parameters: - name: Accept in: header required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 - name: entity in: path description: MCP Account Identifier (PartyID- Merchant Company ID, unique 6-digit ID given to you during the onboarding process) for which rates should be retrieved. required: true example: '100001' schema: type: string requestBody: content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/putMarkupRequestItems' examples: Add a markup: value: sourceCurrency: AUD targetCurrency: GBP markup: 1.23 responses: '204': description: OK response if the request is valid '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: Not found '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange get: summary: Retrieve markup description: Retrieving an existing markup for a specific FX rate.
For MCP customers only. operationId: getMarkup parameters: - name: entity in: path description: MCP Account Identifier (PartyID- Merchant Company ID, unique 6-digit ID given to you during the onboarding process.) for which rates should be retrieved. required: true example: '100001' schema: type: string maxLength: 6 - name: sourceCurrency in: query description: The transaction currency code. If not supplied, the response contains rates for all source currencies against the target currency. required: false example: USD schema: $ref: '#/components/schemas/CurrencyCode' minLength: 3 maxLength: 3 - name: targetCurrency in: query description: Your funding (settlement) currency code. If not supplied, the response contains rates for all target currencies against the source currency. required: false example: EUR schema: $ref: '#/components/schemas/CurrencyCode' minLength: 3 maxLength: 3 - name: Accept in: header required: true schema: type: string example: application/vnd.worldpay.foreignexchange-v1+json - name: WP-CorrelationId in: header description: Optional ID to trace requests, if not provided, it is generated. required: false schema: type: string example: 15cd16b2-7b82-41cb-9b11-21be9dacad88 responses: '200': description: OK response if the request is valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ExternalGetMarkupResponse' '401': description: UNAUTHORIZED response if credentials are invalid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Unauthorized: value: errorName: unauthorizedRequest message: The request is unauthorized '403': description: FORBIDDEN response if Entitlements are not valid content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: forbidden: value: errorName: forbidden message: '' '404': description: NOT FOUND response content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' examples: pageNotFound: value: errorName: notFound message: Not found '500': description: Internal server error content: application/vnd.worldpay.foreignexchange-v1+json: schema: $ref: '#/components/schemas/ErrorResponse' example: errorName: internalErrorOccurred message: Something went wrong tags: - ForeignExchange components: schemas: ExternalGetMarkupResponse: type: object properties: sourceCurrency: description: The debit currency. type: string nullable: false example: EUR targetCurrency: description: The credit currency. type: string nullable: false example: GBP paymentMethod: description: Payment method. type: string nullable: false example: ENDCONSUMERRATES entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. type: string nullable: false example: '100001' value: description: Markup value setup. type: string nullable: false example: '1.234' ExternalPostQuoteResponse: type: object properties: entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. type: string nullable: false example: '100001' intent: description: Transaction type (intention) for which rates should be retrieved. type: string nullable: false example: PAYOUT quote: description: A collection of account statement items. type: array items: $ref: '#/components/schemas/ExternalQuoteItems' nullable: false ExternalGetQuoteResponse: type: object properties: entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. type: string nullable: false example: '100001' intent: description: Transaction type (intention) for which rates should be retrieved. type: string nullable: false example: PAYOUT quote: description: A collection of quote items. type: array items: $ref: '#/components/schemas/ExternalQuoteItems' nullable: false ErrorResponse400: type: object required: - validationErrors - errorName - message properties: validationErrors: description: Object containing details of validation errors occurred type: array items: $ref: '#/components/schemas/ErrorResponse400Item' errorName: description: The unique error name type: string message: description: Error description message type: string postCreateContractItems: required: - effectiveDate - sourceCurrency - targetCurrency - targetAmount - entity type: object properties: effectiveDate: description: A future date when the contract becomes available and can be used. Date must be within 30 days in the future. example: '2025-12-31T00:00:00.000Z' type: string sourceCurrency: description: The transaction currency code. If not supplied, the response contains rates for all source currencies against the target currency. example: USD targetCurrency: description: Your funding (settlement) currency code. If not supplied, the response contains rates for all target currencies against the source currency. example: EUR targetAmount: description: The total amount for your forward FX contract and future payout request in the targetCurrency. example: 1.23 entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process example: '100001' customerReference: description: A reference generated by you representing the payer who funds the FX contract. example: Customer 001 maxLength: 35 ErrorResponse: type: object required: - errorName - message properties: errorName: description: The unique error name type: string message: description: Error description message type: string postCreateQuoteItems: required: - entity - intent - sourceCurrency - targetCurrency type: object properties: entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process example: '100001' type: string intent: description: Transaction type (intention) for which rates should be retrieved. type: string enum: - PAYOUT - FX DEAL - MULTI-CURRENCY PRICING - CONSUMER RATES - PAYOUT LIVE RATE sourceCurrency: description: The debit currency. example: USD type: string targetCurrency: description: The credit currency. example: EUR type: string putMarkupRequestItems: required: - sourceCurrency - targetCurrency - markup type: object properties: sourceCurrency: description: The transaction currency code. If not supplied, the response contains rates for all source currencies against the target currency. example: AUD targetCurrency: description: Your funding (settlement) currency code. If not supplied, the response contains rates for all target currencies against the source currency. example: GBP markup: description: The additional margin percentage set up on FX rates. example: 1.23 ErrorResponse400Contract: type: object required: - errorName - message properties: errorName: description: The unique error name type: string message: description: Error description message type: string ErrorResponse400QuoteItem: type: object required: - jsonPath - errorName - message properties: jsonPath: description: Parameter for which the error occurred type: string errorName: description: Unique name of the validation error type: string message: description: Error description message type: string ErrorResponse400Item: type: object required: - queryParameter - errorName - message properties: queryParameter: description: Parameter for which the error occurred type: string errorName: description: Unique name of the validation error type: string message: description: Error description message type: string ExternalPostContractResponse: type: object properties: contractId: description: Unique ID of the contract. type: string nullable: false example: C000000001 targetAmount: description: Crediting currency code. type: string nullable: false example: EUR sourceAmount: description: Debiting currency code. type: string nullable: false example: GBP status: description: Status of the contract. type: string nullable: false example: PENDING effectiveDate: description: Datetime representation in UTC of when the contract starts. type: string nullable: false example: '2025-01-01T00:00:00.000Z' customerReference: description: A reference generated by you representing the payer who funds the FX contract. type: string nullable: true example: Customer 001 quote: description: A collection of quote items. type: array items: $ref: '#/components/schemas/ExternalContractQuoteItems' nullable: false putActivatedContractItems: required: - status - entity type: object properties: status: description: New status of the contract. enum: - ACTIVE - CANCELLED type: string entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process example: '100001' type: string ExternalContractQuoteItems: type: object properties: quoteId: description: Unique quote id. type: string nullable: false example: F000000001 sourceCurrency: description: The debit currency. type: string nullable: false example: EUR targetCurrency: description: The credit currency. type: string nullable: false example: GBP entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. type: string nullable: false example: '100001' intent: description: Payment method (intent) for which rates are retrieved. type: string nullable: false example: FORWARD FX rateId: description: Unique rate id. type: string nullable: false example: '1234567' rate: description: Rate amount. type: string nullable: false example: '1.23456' quoteExpiryTime: description: Quote start time. type: string nullable: false example: 2025-01-015T23:59:59.999Z ExternalRateItems: type: object properties: rateId: description: Unique reference for the rate. type: string nullable: false example: R12345678 intent: description: Transaction type (intention) for which rates should be retrieved. type: string nullable: false example: PAYOUT sourceCurrency: description: The debit currency. type: string example: EUR targetCurrency: description: The credit currency. type: string nullable: false example: GBP bidRate: description: The buy/refund rate for the currency pairing. type: number format: double nullable: false example: 1.23456789 askRate: description: The sell/purchase rate for the currency pairing. type: number format: double nullable: false example: 1.23456789 entity: description: 6-digit reference given to you by your Worldpay Implementation Manager during the onboarding process. type: number nullable: false example: 100001 issuedDate: description: The posting date of the specific statement item. type: string format: date-time nullable: false example: '2025-01-01T12:00:00.000Z' validFrom: description: Validation date from. type: string format: date-time nullable: false example: '2025-01-10T12:00:00.000Z' validTo: description: Validation date to. type: string format: date-time nullable: false example: '2025-01-10T12:00:00.000Z' ErrorResponse400Quote: type: object required: - validationErrors - errorName - message properties: validationErrors: description: Object containing details of validation errors occurred type: array items: $ref: '#/components/schemas/ErrorResponse400QuoteItem' errorName: description: The unique error name type: string message: description: Error description message type: string ExternalRateResponse: type: object properties: rates: description: A collection of rates items. type: array items: $ref: '#/components/schemas/ExternalRateItems' ExternalQuoteItems: type: object properties: quoteId: description: Unique quote id. type: string nullable: false example: Q000000001 sourceCurrency: description: The debit currency. type: string nullable: false example: EUR targetCurrency: description: The credit currency. type: string nullable: false example: GBP rateId: description: Unique rate id. type: string nullable: false example: '12345678' rate: description: Rate amount. type: string nullable: false example: '1.2345' quoteExpiryTime: description: Quote start time. type: string nullable: false example: '2025-01-10T12:00:00.000Z' CurrencyCode: type: string minLength: 3 maxLength: 3 pattern: ^[A-Z]*$ securitySchemes: BasicAuth: type: http scheme: basic