diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 33c43742..8418d56b 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -21731,6 +21731,7 @@ components: type: string enum: - QUOTE_EXPIRED + - QUOTE_RATE_UNAVAILABLE - QUOTE_EXECUTION_FAILED - FUNDING_AMOUNT_MISMATCH - SCA_NOT_COMPLETED @@ -21761,6 +21762,7 @@ components: | Reason | Description | |--------|-------------| | `QUOTE_EXPIRED` | The quote was not executed before its expiry window | + | `QUOTE_RATE_UNAVAILABLE` | The quoted exchange rate was no longer available when the quote was executed, so nothing was exchanged. Create a new quote to get a current rate | | `QUOTE_EXECUTION_FAILED` | The quote could not be executed. Covers any internal failure on the way to settlement, whether or not funds were debited — a debited amount is refunded automatically | | `FUNDING_AMOUNT_MISMATCH` | The funds received did not match the expected amount | | `SCA_NOT_COMPLETED` | The customer did not complete the Strong Customer Authentication challenge before it expired | diff --git a/mintlify/platform-overview/core-concepts/quote-system.mdx b/mintlify/platform-overview/core-concepts/quote-system.mdx index a85a5ac2..76676116 100644 --- a/mintlify/platform-overview/core-concepts/quote-system.mdx +++ b/mintlify/platform-overview/core-concepts/quote-system.mdx @@ -454,12 +454,16 @@ For cross-currency quotes the exchange rate applies on top of this: the fee is t try { await executeQuote(quote.id); } catch (error) { - if (error.code === 'QUOTE_EXPIRED') { + if (error.code === 'QUOTE_EXPIRED' || error.code === 'QUOTE_RATE_UNAVAILABLE') { quote = await createQuote(quoteParams); // Recreate with fresh rate await executeQuote(quote.id); } } ``` + + `QUOTE_RATE_UNAVAILABLE` means the quoted rate was refused when the quote was + executed, rather than the quote's own expiry window elapsing. Nothing was + exchanged in either case, and the recovery is the same: create a new quote. diff --git a/openapi.yaml b/openapi.yaml index 33c43742..8418d56b 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -21731,6 +21731,7 @@ components: type: string enum: - QUOTE_EXPIRED + - QUOTE_RATE_UNAVAILABLE - QUOTE_EXECUTION_FAILED - FUNDING_AMOUNT_MISMATCH - SCA_NOT_COMPLETED @@ -21761,6 +21762,7 @@ components: | Reason | Description | |--------|-------------| | `QUOTE_EXPIRED` | The quote was not executed before its expiry window | + | `QUOTE_RATE_UNAVAILABLE` | The quoted exchange rate was no longer available when the quote was executed, so nothing was exchanged. Create a new quote to get a current rate | | `QUOTE_EXECUTION_FAILED` | The quote could not be executed. Covers any internal failure on the way to settlement, whether or not funds were debited — a debited amount is refunded automatically | | `FUNDING_AMOUNT_MISMATCH` | The funds received did not match the expected amount | | `SCA_NOT_COMPLETED` | The customer did not complete the Strong Customer Authentication challenge before it expired | diff --git a/openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml b/openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml index 8fe12beb..38772c4d 100644 --- a/openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml +++ b/openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml @@ -1,6 +1,7 @@ type: string enum: - QUOTE_EXPIRED + - QUOTE_RATE_UNAVAILABLE - QUOTE_EXECUTION_FAILED - FUNDING_AMOUNT_MISMATCH - SCA_NOT_COMPLETED @@ -31,6 +32,7 @@ description: | | Reason | Description | |--------|-------------| | `QUOTE_EXPIRED` | The quote was not executed before its expiry window | + | `QUOTE_RATE_UNAVAILABLE` | The quoted exchange rate was no longer available when the quote was executed, so nothing was exchanged. Create a new quote to get a current rate | | `QUOTE_EXECUTION_FAILED` | The quote could not be executed. Covers any internal failure on the way to settlement, whether or not funds were debited — a debited amount is refunded automatically | | `FUNDING_AMOUNT_MISMATCH` | The funds received did not match the expected amount | | `SCA_NOT_COMPLETED` | The customer did not complete the Strong Customer Authentication challenge before it expired |