diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d8331808..2e59ad39 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,6 +7,7 @@ on: - 'openapi.yaml' - 'openapi/**' - '.markdownlint.json' + - '.spectral.yaml' - 'mintlify/**' pull_request: branches: [ main ] @@ -14,6 +15,7 @@ on: - 'openapi.yaml' - 'openapi/**' - '.markdownlint.json' + - '.spectral.yaml' - 'mintlify/**' # Allow manual triggering workflow_dispatch: diff --git a/.spectral.yaml b/.spectral.yaml index b7e9ffae..27a0be51 100644 --- a/.spectral.yaml +++ b/.spectral.yaml @@ -76,12 +76,11 @@ rules: # ============================================================ # Request bodies must use $ref, not inline schemas. - # Note: Spectral resolves $refs in the bundled spec, so some component-level - # false positives appear — the real violations are on paths.* entries. no-inline-request-schema: description: Request body schemas must use $ref, not inline definitions message: "Use $ref for request body schema instead of inline definition. See openapi/README.md#avoid-inline-schemas-in-request-and-response-definitions" severity: error + resolved: false given: "$.paths[*][get,post,put,patch,delete].requestBody.content[application/json].schema" then: field: "$ref" @@ -92,6 +91,7 @@ rules: description: Response body schemas must use $ref, not inline definitions message: "Use $ref for response schema instead of inline definition. See openapi/README.md#avoid-inline-schemas-in-request-and-response-definitions" severity: error + resolved: false given: "$.paths[*][get,post,put,patch,delete].responses[*].content[application/json].schema" then: field: "$ref" diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index c32d667d..b228d300 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -189,15 +189,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of exchange rates matching the filter criteria - items: - $ref: '#/components/schemas/ExchangeRate' + $ref: '#/components/schemas/ExchangeRateListResponse' examples: allRatesFromUSD: summary: All exchange rates from USD @@ -295,32 +287,7 @@ paths: content: application/json: schema: - type: object - properties: - data: - type: array - description: List of payment rails matching the filter criteria - items: - type: object - required: - - bankName - - displayName - - country - - currency - properties: - bankName: - type: string - description: | - Canonical name for this payment rail. Pass this value as `bankName` when creating an external account. - displayName: - type: string - description: Human-friendly display name for this payment rail. - country: - type: string - description: ISO 3166-1 alpha-2 country code. - currency: - type: string - description: ISO 4217 currency code. + $ref: '#/components/schemas/DiscoveryListResponse' examples: philippinesBanks: summary: Payment rails for Philippines (PHP) @@ -556,25 +523,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of customers matching the filter criteria - items: - $ref: '#/components/schemas/CustomerOneOf' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of customers matching the criteria (excluding pagination) + $ref: '#/components/schemas/CustomerListResponse' '400': description: Bad request - Invalid parameters content: @@ -841,25 +790,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: '#/components/schemas/InternalAccount' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of customers matching the criteria (excluding pagination) + $ref: '#/components/schemas/InternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -903,15 +834,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: '#/components/schemas/InternalAccount' + $ref: '#/components/schemas/PlatformInternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -978,25 +901,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: '#/components/schemas/ExternalAccount' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of external accounts matching the criteria (excluding pagination) + $ref: '#/components/schemas/ExternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -1119,15 +1024,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: '#/components/schemas/ExternalAccount' + $ref: '#/components/schemas/PlatformExternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -1307,25 +1204,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of beneficial owners matching the filter criteria - items: - $ref: '#/components/schemas/BeneficialOwner' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/BeneficialOwnerListResponse' '400': description: Bad request - Invalid parameters content: @@ -1523,25 +1402,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of documents matching the filter criteria - items: - $ref: '#/components/schemas/Document' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/DocumentListResponse' '400': description: Bad request - Invalid parameters content: @@ -1820,25 +1681,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of verifications matching the filter criteria - items: - $ref: '#/components/schemas/Verification' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/VerificationListResponse' '400': description: Bad request - Invalid parameters content: @@ -2064,16 +1907,7 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/ReceiverLookupResponse' - - type: object - required: - - receiverUmaAddress - properties: - receiverUmaAddress: - type: string - description: The UMA address that was looked up - example: $receiver@uma.domain + $ref: '#/components/schemas/ReceiverUmaLookupResponse' '400': description: Bad request - Missing or invalid parameters content: @@ -2147,16 +1981,7 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/ReceiverLookupResponse' - - type: object - required: - - accountId - properties: - accountId: - type: string - description: The external account ID that was looked up - example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + $ref: '#/components/schemas/ReceiverExternalAccountLookupResponse' '400': description: Bad request - Missing or invalid parameters content: @@ -2561,25 +2386,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of transactions matching the criteria - items: - $ref: '#/components/schemas/TransactionOneOf' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of transactions matching the criteria (excluding pagination) + $ref: '#/components/schemas/TransactionListResponse' '400': description: Bad request - Invalid parameters content: @@ -3437,21 +3244,7 @@ paths: content: application/json: schema: - properties: - data: - description: List of available UMA Providers using Grid - type: array - items: - $ref: '#/components/schemas/UmaProvider' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of transactions matching the criteria (excluding pagination) + $ref: '#/components/schemas/UmaProviderListResponse' '401': description: Unauthorized content: @@ -3570,25 +3363,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of tokens matching the filter criteria - items: - $ref: '#/components/schemas/ApiToken' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of tokens matching the criteria (excluding pagination) + $ref: '#/components/schemas/TokenListResponse' '400': description: Bad request - Invalid parameters content: @@ -4943,6 +4718,43 @@ components: format: date-time description: Timestamp when this exchange rate was last refreshed example: '2025-02-05T12:00:00Z' + ExchangeRateListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of exchange rates matching the filter criteria + items: + $ref: '#/components/schemas/ExchangeRate' + DiscoveryListResponse: + type: object + properties: + data: + type: array + description: List of payment rails matching the filter criteria + items: + type: object + required: + - bankName + - displayName + - country + - currency + properties: + bankName: + type: string + description: | + Canonical name for this payment rail. Pass this value as `bankName` when creating an external account. + displayName: + type: string + description: Human-friendly display name for this payment rail. + country: + type: string + description: ISO 3166-1 alpha-2 country code. + currency: + type: string + description: ISO 4217 currency code. CustomerType: type: string enum: @@ -5444,6 +5256,26 @@ components: mapping: INDIVIDUAL: '#/components/schemas/IndividualCustomer' BUSINESS: '#/components/schemas/BusinessCustomer' + CustomerListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of customers matching the filter criteria + items: + $ref: '#/components/schemas/CustomerOneOf' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of customers matching the criteria (excluding pagination) CustomerCreateRequest: type: object required: @@ -7605,6 +7437,36 @@ components: format: date-time description: Timestamp when the internal account was last updated example: '2025-10-03T12:30:00Z' + InternalAccountListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: '#/components/schemas/InternalAccount' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of customers matching the criteria (excluding pagination) + PlatformInternalAccountListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: '#/components/schemas/InternalAccount' ExternalAccountStatus: type: string enum: @@ -9753,6 +9615,26 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + ExternalAccountListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: '#/components/schemas/ExternalAccount' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of external accounts matching the criteria (excluding pagination) ExternalAccountCreateRequest: allOf: - type: object @@ -9782,6 +9664,16 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + PlatformExternalAccountListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: '#/components/schemas/ExternalAccount' PlatformExternalAccountCreateRequest: type: object required: @@ -9798,6 +9690,26 @@ components: example: ext_acc_123456 accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + BeneficialOwnerListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of beneficial owners matching the filter criteria + items: + $ref: '#/components/schemas/BeneficialOwner' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria BeneficialOwnerCreateRequest: type: object required: @@ -9972,6 +9884,26 @@ components: format: date-time description: When this document was last updated example: '2025-10-03T12:00:00Z' + DocumentListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of documents matching the filter criteria + items: + $ref: '#/components/schemas/Document' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria BaseDocumentRequest: type: object required: @@ -10123,6 +10055,26 @@ components: format: date-time description: When this verification was last updated example: '2025-10-03T12:00:00Z' + VerificationListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of verifications matching the filter criteria + items: + $ref: '#/components/schemas/Verification' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria VerificationRequest: type: object required: @@ -10733,6 +10685,17 @@ components: type: string description: Unique identifier for the lookup. Needed in the subsequent create quote request. example: Lookup:019542f5-b3e7-1d02-0000-000000000009 + ReceiverUmaLookupResponse: + allOf: + - $ref: '#/components/schemas/ReceiverLookupResponse' + - type: object + required: + - receiverUmaAddress + properties: + receiverUmaAddress: + type: string + description: The UMA address that was looked up + example: $receiver@uma.domain Error412: type: object required: @@ -10793,6 +10756,17 @@ components: type: object description: Additional error details additionalProperties: true + ReceiverExternalAccountLookupResponse: + allOf: + - $ref: '#/components/schemas/ReceiverLookupResponse' + - type: object + required: + - accountId + properties: + accountId: + type: string + description: The external account ID that was looked up + example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 QuoteSourceType: type: string enum: @@ -11105,6 +11079,26 @@ components: example: FULL_NAME: Jane Receiver NATIONALITY: FR + TransactionListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of transactions matching the criteria + items: + $ref: '#/components/schemas/TransactionOneOf' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of transactions matching the criteria (excluding pagination) ApprovePaymentRequest: type: object properties: @@ -11519,6 +11513,23 @@ components: type: boolean description: Whether this UMA Provider is on your allow list example: true + UmaProviderListResponse: + type: object + properties: + data: + description: List of available UMA Providers using Grid + type: array + items: + $ref: '#/components/schemas/UmaProvider' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of transactions matching the criteria (excluding pagination) Permission: type: string enum: @@ -11567,6 +11578,26 @@ components: format: date-time description: Last update timestamp example: '2025-07-21T17:32:28Z' + TokenListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of tokens matching the filter criteria + items: + $ref: '#/components/schemas/ApiToken' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of tokens matching the criteria (excluding pagination) ApiTokenCreateRequest: type: object required: diff --git a/openapi.yaml b/openapi.yaml index c32d667d..b228d300 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -189,15 +189,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of exchange rates matching the filter criteria - items: - $ref: '#/components/schemas/ExchangeRate' + $ref: '#/components/schemas/ExchangeRateListResponse' examples: allRatesFromUSD: summary: All exchange rates from USD @@ -295,32 +287,7 @@ paths: content: application/json: schema: - type: object - properties: - data: - type: array - description: List of payment rails matching the filter criteria - items: - type: object - required: - - bankName - - displayName - - country - - currency - properties: - bankName: - type: string - description: | - Canonical name for this payment rail. Pass this value as `bankName` when creating an external account. - displayName: - type: string - description: Human-friendly display name for this payment rail. - country: - type: string - description: ISO 3166-1 alpha-2 country code. - currency: - type: string - description: ISO 4217 currency code. + $ref: '#/components/schemas/DiscoveryListResponse' examples: philippinesBanks: summary: Payment rails for Philippines (PHP) @@ -556,25 +523,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of customers matching the filter criteria - items: - $ref: '#/components/schemas/CustomerOneOf' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of customers matching the criteria (excluding pagination) + $ref: '#/components/schemas/CustomerListResponse' '400': description: Bad request - Invalid parameters content: @@ -841,25 +790,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: '#/components/schemas/InternalAccount' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of customers matching the criteria (excluding pagination) + $ref: '#/components/schemas/InternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -903,15 +834,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: '#/components/schemas/InternalAccount' + $ref: '#/components/schemas/PlatformInternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -978,25 +901,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: '#/components/schemas/ExternalAccount' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of external accounts matching the criteria (excluding pagination) + $ref: '#/components/schemas/ExternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -1119,15 +1024,7 @@ paths: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: '#/components/schemas/ExternalAccount' + $ref: '#/components/schemas/PlatformExternalAccountListResponse' '400': description: Bad request - Invalid parameters content: @@ -1307,25 +1204,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of beneficial owners matching the filter criteria - items: - $ref: '#/components/schemas/BeneficialOwner' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/BeneficialOwnerListResponse' '400': description: Bad request - Invalid parameters content: @@ -1523,25 +1402,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of documents matching the filter criteria - items: - $ref: '#/components/schemas/Document' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/DocumentListResponse' '400': description: Bad request - Invalid parameters content: @@ -1820,25 +1681,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of verifications matching the filter criteria - items: - $ref: '#/components/schemas/Verification' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: '#/components/schemas/VerificationListResponse' '400': description: Bad request - Invalid parameters content: @@ -2064,16 +1907,7 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/ReceiverLookupResponse' - - type: object - required: - - receiverUmaAddress - properties: - receiverUmaAddress: - type: string - description: The UMA address that was looked up - example: $receiver@uma.domain + $ref: '#/components/schemas/ReceiverUmaLookupResponse' '400': description: Bad request - Missing or invalid parameters content: @@ -2147,16 +1981,7 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/ReceiverLookupResponse' - - type: object - required: - - accountId - properties: - accountId: - type: string - description: The external account ID that was looked up - example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + $ref: '#/components/schemas/ReceiverExternalAccountLookupResponse' '400': description: Bad request - Missing or invalid parameters content: @@ -2561,25 +2386,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of transactions matching the criteria - items: - $ref: '#/components/schemas/TransactionOneOf' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of transactions matching the criteria (excluding pagination) + $ref: '#/components/schemas/TransactionListResponse' '400': description: Bad request - Invalid parameters content: @@ -3437,21 +3244,7 @@ paths: content: application/json: schema: - properties: - data: - description: List of available UMA Providers using Grid - type: array - items: - $ref: '#/components/schemas/UmaProvider' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of transactions matching the criteria (excluding pagination) + $ref: '#/components/schemas/UmaProviderListResponse' '401': description: Unauthorized content: @@ -3570,25 +3363,7 @@ paths: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of tokens matching the filter criteria - items: - $ref: '#/components/schemas/ApiToken' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of tokens matching the criteria (excluding pagination) + $ref: '#/components/schemas/TokenListResponse' '400': description: Bad request - Invalid parameters content: @@ -4943,6 +4718,43 @@ components: format: date-time description: Timestamp when this exchange rate was last refreshed example: '2025-02-05T12:00:00Z' + ExchangeRateListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of exchange rates matching the filter criteria + items: + $ref: '#/components/schemas/ExchangeRate' + DiscoveryListResponse: + type: object + properties: + data: + type: array + description: List of payment rails matching the filter criteria + items: + type: object + required: + - bankName + - displayName + - country + - currency + properties: + bankName: + type: string + description: | + Canonical name for this payment rail. Pass this value as `bankName` when creating an external account. + displayName: + type: string + description: Human-friendly display name for this payment rail. + country: + type: string + description: ISO 3166-1 alpha-2 country code. + currency: + type: string + description: ISO 4217 currency code. CustomerType: type: string enum: @@ -5444,6 +5256,26 @@ components: mapping: INDIVIDUAL: '#/components/schemas/IndividualCustomer' BUSINESS: '#/components/schemas/BusinessCustomer' + CustomerListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of customers matching the filter criteria + items: + $ref: '#/components/schemas/CustomerOneOf' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of customers matching the criteria (excluding pagination) CustomerCreateRequest: type: object required: @@ -7605,6 +7437,36 @@ components: format: date-time description: Timestamp when the internal account was last updated example: '2025-10-03T12:30:00Z' + InternalAccountListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: '#/components/schemas/InternalAccount' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of customers matching the criteria (excluding pagination) + PlatformInternalAccountListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: '#/components/schemas/InternalAccount' ExternalAccountStatus: type: string enum: @@ -9753,6 +9615,26 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + ExternalAccountListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: '#/components/schemas/ExternalAccount' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of external accounts matching the criteria (excluding pagination) ExternalAccountCreateRequest: allOf: - type: object @@ -9782,6 +9664,16 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + PlatformExternalAccountListResponse: + type: object + required: + - data + properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: '#/components/schemas/ExternalAccount' PlatformExternalAccountCreateRequest: type: object required: @@ -9798,6 +9690,26 @@ components: example: ext_acc_123456 accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' + BeneficialOwnerListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of beneficial owners matching the filter criteria + items: + $ref: '#/components/schemas/BeneficialOwner' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria BeneficialOwnerCreateRequest: type: object required: @@ -9972,6 +9884,26 @@ components: format: date-time description: When this document was last updated example: '2025-10-03T12:00:00Z' + DocumentListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of documents matching the filter criteria + items: + $ref: '#/components/schemas/Document' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria BaseDocumentRequest: type: object required: @@ -10123,6 +10055,26 @@ components: format: date-time description: When this verification was last updated example: '2025-10-03T12:00:00Z' + VerificationListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of verifications matching the filter criteria + items: + $ref: '#/components/schemas/Verification' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria VerificationRequest: type: object required: @@ -10733,6 +10685,17 @@ components: type: string description: Unique identifier for the lookup. Needed in the subsequent create quote request. example: Lookup:019542f5-b3e7-1d02-0000-000000000009 + ReceiverUmaLookupResponse: + allOf: + - $ref: '#/components/schemas/ReceiverLookupResponse' + - type: object + required: + - receiverUmaAddress + properties: + receiverUmaAddress: + type: string + description: The UMA address that was looked up + example: $receiver@uma.domain Error412: type: object required: @@ -10793,6 +10756,17 @@ components: type: object description: Additional error details additionalProperties: true + ReceiverExternalAccountLookupResponse: + allOf: + - $ref: '#/components/schemas/ReceiverLookupResponse' + - type: object + required: + - accountId + properties: + accountId: + type: string + description: The external account ID that was looked up + example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 QuoteSourceType: type: string enum: @@ -11105,6 +11079,26 @@ components: example: FULL_NAME: Jane Receiver NATIONALITY: FR + TransactionListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of transactions matching the criteria + items: + $ref: '#/components/schemas/TransactionOneOf' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of transactions matching the criteria (excluding pagination) ApprovePaymentRequest: type: object properties: @@ -11519,6 +11513,23 @@ components: type: boolean description: Whether this UMA Provider is on your allow list example: true + UmaProviderListResponse: + type: object + properties: + data: + description: List of available UMA Providers using Grid + type: array + items: + $ref: '#/components/schemas/UmaProvider' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of transactions matching the criteria (excluding pagination) Permission: type: string enum: @@ -11567,6 +11578,26 @@ components: format: date-time description: Last update timestamp example: '2025-07-21T17:32:28Z' + TokenListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of tokens matching the filter criteria + items: + $ref: '#/components/schemas/ApiToken' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of tokens matching the criteria (excluding pagination) ApiTokenCreateRequest: type: object required: diff --git a/openapi/components/schemas/customers/BeneficialOwnerListResponse.yaml b/openapi/components/schemas/customers/BeneficialOwnerListResponse.yaml new file mode 100644 index 00000000..70e482de --- /dev/null +++ b/openapi/components/schemas/customers/BeneficialOwnerListResponse.yaml @@ -0,0 +1,21 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of beneficial owners matching the filter criteria + items: + $ref: ./BeneficialOwner.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria diff --git a/openapi/components/schemas/customers/CustomerListResponse.yaml b/openapi/components/schemas/customers/CustomerListResponse.yaml new file mode 100644 index 00000000..3802ec52 --- /dev/null +++ b/openapi/components/schemas/customers/CustomerListResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of customers matching the filter criteria + items: + $ref: ./CustomerOneOf.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: >- + Total number of customers matching the criteria (excluding + pagination) diff --git a/openapi/components/schemas/customers/InternalAccountListResponse.yaml b/openapi/components/schemas/customers/InternalAccountListResponse.yaml new file mode 100644 index 00000000..82f26a18 --- /dev/null +++ b/openapi/components/schemas/customers/InternalAccountListResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: ./InternalAccount.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: >- + Total number of customers matching the criteria (excluding + pagination) diff --git a/openapi/components/schemas/customers/PlatformInternalAccountListResponse.yaml b/openapi/components/schemas/customers/PlatformInternalAccountListResponse.yaml new file mode 100644 index 00000000..7fb04c37 --- /dev/null +++ b/openapi/components/schemas/customers/PlatformInternalAccountListResponse.yaml @@ -0,0 +1,9 @@ +type: object +required: + - data +properties: + data: + type: array + description: List of internal accounts matching the filter criteria + items: + $ref: ./InternalAccount.yaml diff --git a/openapi/components/schemas/discoveries/DiscoveryListResponse.yaml b/openapi/components/schemas/discoveries/DiscoveryListResponse.yaml new file mode 100644 index 00000000..c7736db6 --- /dev/null +++ b/openapi/components/schemas/discoveries/DiscoveryListResponse.yaml @@ -0,0 +1,27 @@ +type: object +properties: + data: + type: array + description: List of payment rails matching the filter criteria + items: + type: object + required: + - bankName + - displayName + - country + - currency + properties: + bankName: + type: string + description: > + Canonical name for this payment rail. Pass this value as + `bankName` when creating an external account. + displayName: + type: string + description: Human-friendly display name for this payment rail. + country: + type: string + description: ISO 3166-1 alpha-2 country code. + currency: + type: string + description: ISO 4217 currency code. diff --git a/openapi/components/schemas/documents/DocumentListResponse.yaml b/openapi/components/schemas/documents/DocumentListResponse.yaml new file mode 100644 index 00000000..7cc40b86 --- /dev/null +++ b/openapi/components/schemas/documents/DocumentListResponse.yaml @@ -0,0 +1,21 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of documents matching the filter criteria + items: + $ref: ./Document.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria diff --git a/openapi/components/schemas/exchange_rates/ExchangeRateListResponse.yaml b/openapi/components/schemas/exchange_rates/ExchangeRateListResponse.yaml new file mode 100644 index 00000000..b8a848b6 --- /dev/null +++ b/openapi/components/schemas/exchange_rates/ExchangeRateListResponse.yaml @@ -0,0 +1,9 @@ +type: object +required: + - data +properties: + data: + type: array + description: List of exchange rates matching the filter criteria + items: + $ref: ./ExchangeRate.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountListResponse.yaml b/openapi/components/schemas/external_accounts/ExternalAccountListResponse.yaml new file mode 100644 index 00000000..967e340c --- /dev/null +++ b/openapi/components/schemas/external_accounts/ExternalAccountListResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: ./ExternalAccount.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: >- + Total number of external accounts matching the criteria (excluding + pagination) diff --git a/openapi/components/schemas/external_accounts/PlatformExternalAccountListResponse.yaml b/openapi/components/schemas/external_accounts/PlatformExternalAccountListResponse.yaml new file mode 100644 index 00000000..a86fb180 --- /dev/null +++ b/openapi/components/schemas/external_accounts/PlatformExternalAccountListResponse.yaml @@ -0,0 +1,9 @@ +type: object +required: + - data +properties: + data: + type: array + description: List of external accounts matching the filter criteria + items: + $ref: ./ExternalAccount.yaml diff --git a/openapi/components/schemas/receiver/ReceiverExternalAccountLookupResponse.yaml b/openapi/components/schemas/receiver/ReceiverExternalAccountLookupResponse.yaml new file mode 100644 index 00000000..a3f26d9e --- /dev/null +++ b/openapi/components/schemas/receiver/ReceiverExternalAccountLookupResponse.yaml @@ -0,0 +1,10 @@ +allOf: + - $ref: ./ReceiverLookupResponse.yaml + - type: object + required: + - accountId + properties: + accountId: + type: string + description: The external account ID that was looked up + example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 diff --git a/openapi/components/schemas/receiver/ReceiverUmaLookupResponse.yaml b/openapi/components/schemas/receiver/ReceiverUmaLookupResponse.yaml new file mode 100644 index 00000000..d34aac76 --- /dev/null +++ b/openapi/components/schemas/receiver/ReceiverUmaLookupResponse.yaml @@ -0,0 +1,10 @@ +allOf: + - $ref: ./ReceiverLookupResponse.yaml + - type: object + required: + - receiverUmaAddress + properties: + receiverUmaAddress: + type: string + description: The UMA address that was looked up + example: $receiver@uma.domain diff --git a/openapi/components/schemas/tokens/TokenListResponse.yaml b/openapi/components/schemas/tokens/TokenListResponse.yaml new file mode 100644 index 00000000..f75df56c --- /dev/null +++ b/openapi/components/schemas/tokens/TokenListResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of tokens matching the filter criteria + items: + $ref: ./ApiToken.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: >- + Total number of tokens matching the criteria (excluding + pagination) diff --git a/openapi/components/schemas/transactions/TransactionListResponse.yaml b/openapi/components/schemas/transactions/TransactionListResponse.yaml new file mode 100644 index 00000000..9fab2a58 --- /dev/null +++ b/openapi/components/schemas/transactions/TransactionListResponse.yaml @@ -0,0 +1,23 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of transactions matching the criteria + items: + $ref: ./TransactionOneOf.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: >- + Total number of transactions matching the criteria (excluding + pagination) diff --git a/openapi/components/schemas/uma_providers/UmaProviderListResponse.yaml b/openapi/components/schemas/uma_providers/UmaProviderListResponse.yaml new file mode 100644 index 00000000..bf444478 --- /dev/null +++ b/openapi/components/schemas/uma_providers/UmaProviderListResponse.yaml @@ -0,0 +1,16 @@ +type: object +properties: + data: + description: List of available UMA Providers using Grid + type: array + items: + $ref: './UmaProvider.yaml' + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: Cursor to retrieve the next page of results (only present if hasMore is true) + totalCount: + type: integer + description: Total number of transactions matching the criteria (excluding pagination) diff --git a/openapi/components/schemas/verifications/VerificationListResponse.yaml b/openapi/components/schemas/verifications/VerificationListResponse.yaml new file mode 100644 index 00000000..dc9360e9 --- /dev/null +++ b/openapi/components/schemas/verifications/VerificationListResponse.yaml @@ -0,0 +1,21 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of verifications matching the filter criteria + items: + $ref: ./Verification.yaml + hasMore: + type: boolean + description: Indicates if more results are available beyond this page + nextCursor: + type: string + description: >- + Cursor to retrieve the next page of results (only present if + hasMore is true) + totalCount: + type: integer + description: Total number of results matching the criteria diff --git a/openapi/paths/beneficial-owners/beneficial_owners.yaml b/openapi/paths/beneficial-owners/beneficial_owners.yaml index 719a2d4c..9a073f67 100644 --- a/openapi/paths/beneficial-owners/beneficial_owners.yaml +++ b/openapi/paths/beneficial-owners/beneficial_owners.yaml @@ -82,27 +82,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of beneficial owners matching the filter criteria - items: - $ref: ../../components/schemas/customers/BeneficialOwner.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: ../../components/schemas/customers/BeneficialOwnerListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/customers/customers.yaml b/openapi/paths/customers/customers.yaml index 3bee91ee..e8a9923b 100644 --- a/openapi/paths/customers/customers.yaml +++ b/openapi/paths/customers/customers.yaml @@ -206,29 +206,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of customers matching the filter criteria - items: - $ref: ../../components/schemas/customers/CustomerOneOf.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: >- - Total number of customers matching the criteria (excluding - pagination) + $ref: ../../components/schemas/customers/CustomerListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/customers/customers_external_accounts.yaml b/openapi/paths/customers/customers_external_accounts.yaml index e7330774..b8f59e39 100644 --- a/openapi/paths/customers/customers_external_accounts.yaml +++ b/openapi/paths/customers/customers_external_accounts.yaml @@ -45,29 +45,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: ../../components/schemas/external_accounts/ExternalAccount.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: >- - Total number of external accounts matching the criteria (excluding - pagination) + $ref: ../../components/schemas/external_accounts/ExternalAccountListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/customers/customers_internal_accounts.yaml b/openapi/paths/customers/customers_internal_accounts.yaml index ef6f77ea..a54f792d 100644 --- a/openapi/paths/customers/customers_internal_accounts.yaml +++ b/openapi/paths/customers/customers_internal_accounts.yaml @@ -45,29 +45,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: ../../components/schemas/customers/InternalAccount.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: >- - Total number of customers matching the criteria (excluding - pagination) + $ref: ../../components/schemas/customers/InternalAccountListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/discoveries/discoveries.yaml b/openapi/paths/discoveries/discoveries.yaml index 06915fbf..a660ef26 100644 --- a/openapi/paths/discoveries/discoveries.yaml +++ b/openapi/paths/discoveries/discoveries.yaml @@ -33,33 +33,7 @@ get: content: application/json: schema: - type: object - properties: - data: - type: array - description: List of payment rails matching the filter criteria - items: - type: object - required: - - bankName - - displayName - - country - - currency - properties: - bankName: - type: string - description: > - Canonical name for this payment rail. Pass this value as - `bankName` when creating an external account. - displayName: - type: string - description: Human-friendly display name for this payment rail. - country: - type: string - description: ISO 3166-1 alpha-2 country code. - currency: - type: string - description: ISO 4217 currency code. + $ref: ../../components/schemas/discoveries/DiscoveryListResponse.yaml examples: philippinesBanks: summary: Payment rails for Philippines (PHP) diff --git a/openapi/paths/documents/documents.yaml b/openapi/paths/documents/documents.yaml index cb39c1f9..aa5b300e 100644 --- a/openapi/paths/documents/documents.yaml +++ b/openapi/paths/documents/documents.yaml @@ -86,27 +86,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of documents matching the filter criteria - items: - $ref: ../../components/schemas/documents/Document.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: ../../components/schemas/documents/DocumentListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/exchange-rates/exchange_rates.yaml b/openapi/paths/exchange-rates/exchange_rates.yaml index 2de1a512..7e78f066 100644 --- a/openapi/paths/exchange-rates/exchange_rates.yaml +++ b/openapi/paths/exchange-rates/exchange_rates.yaml @@ -52,15 +52,7 @@ get: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of exchange rates matching the filter criteria - items: - $ref: ../../components/schemas/exchange_rates/ExchangeRate.yaml + $ref: ../../components/schemas/exchange_rates/ExchangeRateListResponse.yaml examples: allRatesFromUSD: summary: All exchange rates from USD diff --git a/openapi/paths/platform/platform_external_accounts.yaml b/openapi/paths/platform/platform_external_accounts.yaml index 8ae735b2..0fc9f2e1 100644 --- a/openapi/paths/platform/platform_external_accounts.yaml +++ b/openapi/paths/platform/platform_external_accounts.yaml @@ -22,15 +22,7 @@ get: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of external accounts matching the filter criteria - items: - $ref: ../../components/schemas/external_accounts/ExternalAccount.yaml + $ref: ../../components/schemas/external_accounts/PlatformExternalAccountListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/platform/platform_internal_accounts.yaml b/openapi/paths/platform/platform_internal_accounts.yaml index be56ce13..0dc5a1b8 100644 --- a/openapi/paths/platform/platform_internal_accounts.yaml +++ b/openapi/paths/platform/platform_internal_accounts.yaml @@ -22,15 +22,7 @@ get: content: application/json: schema: - type: object - required: - - data - properties: - data: - type: array - description: List of internal accounts matching the filter criteria - items: - $ref: ../../components/schemas/customers/InternalAccount.yaml + $ref: ../../components/schemas/customers/PlatformInternalAccountListResponse.yaml "400": description: Bad request - Invalid parameters content: diff --git a/openapi/paths/receiver/external-account/receiver_external-account_{accountId}.yaml b/openapi/paths/receiver/external-account/receiver_external-account_{accountId}.yaml index 6752d8e3..30339195 100644 --- a/openapi/paths/receiver/external-account/receiver_external-account_{accountId}.yaml +++ b/openapi/paths/receiver/external-account/receiver_external-account_{accountId}.yaml @@ -38,16 +38,7 @@ get: content: application/json: schema: - allOf: - - $ref: ../../../components/schemas/receiver/ReceiverLookupResponse.yaml - - type: object - required: - - accountId - properties: - accountId: - type: string - description: The external account ID that was looked up - example: ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + $ref: ../../../components/schemas/receiver/ReceiverExternalAccountLookupResponse.yaml '400': description: Bad request - Missing or invalid parameters content: diff --git a/openapi/paths/receiver/uma/receiver_uma_{receiverUmaAddress}.yaml b/openapi/paths/receiver/uma/receiver_uma_{receiverUmaAddress}.yaml index e3619b25..15e211a4 100644 --- a/openapi/paths/receiver/uma/receiver_uma_{receiverUmaAddress}.yaml +++ b/openapi/paths/receiver/uma/receiver_uma_{receiverUmaAddress}.yaml @@ -36,16 +36,7 @@ get: content: application/json: schema: - allOf: - - $ref: ../../../components/schemas/receiver/ReceiverLookupResponse.yaml - - type: object - required: - - receiverUmaAddress - properties: - receiverUmaAddress: - type: string - description: The UMA address that was looked up - example: $receiver@uma.domain + $ref: ../../../components/schemas/receiver/ReceiverUmaLookupResponse.yaml '400': description: Bad request - Missing or invalid parameters content: diff --git a/openapi/paths/tokens/tokens.yaml b/openapi/paths/tokens/tokens.yaml index a2bbcee2..61906a97 100644 --- a/openapi/paths/tokens/tokens.yaml +++ b/openapi/paths/tokens/tokens.yaml @@ -106,29 +106,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of tokens matching the filter criteria - items: - $ref: ../../components/schemas/tokens/ApiToken.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: >- - Total number of tokens matching the criteria (excluding - pagination) + $ref: ../../components/schemas/tokens/TokenListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/transactions/transactions.yaml b/openapi/paths/transactions/transactions.yaml index af6dac8a..e7642a42 100644 --- a/openapi/paths/transactions/transactions.yaml +++ b/openapi/paths/transactions/transactions.yaml @@ -97,29 +97,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of transactions matching the criteria - items: - $ref: ../../components/schemas/transactions/TransactionOneOf.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: >- - Total number of transactions matching the criteria (excluding - pagination) + $ref: ../../components/schemas/transactions/TransactionListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/openapi/paths/uma_providers/uma_providers.yaml b/openapi/paths/uma_providers/uma_providers.yaml index 473e8b8c..1500146c 100644 --- a/openapi/paths/uma_providers/uma_providers.yaml +++ b/openapi/paths/uma_providers/uma_providers.yaml @@ -57,21 +57,7 @@ get: content: application/json: schema: - properties: - data: - description: List of available UMA Providers using Grid - type: array - items: - $ref: '../../components/schemas/uma_providers/UmaProvider.yaml' - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: Cursor to retrieve the next page of results (only present if hasMore is true) - totalCount: - type: integer - description: Total number of transactions matching the criteria (excluding pagination) + $ref: ../../components/schemas/uma_providers/UmaProviderListResponse.yaml '401': description: Unauthorized content: diff --git a/openapi/paths/verifications/verifications.yaml b/openapi/paths/verifications/verifications.yaml index 55927258..76d281ae 100644 --- a/openapi/paths/verifications/verifications.yaml +++ b/openapi/paths/verifications/verifications.yaml @@ -126,27 +126,7 @@ get: content: application/json: schema: - type: object - required: - - data - - hasMore - properties: - data: - type: array - description: List of verifications matching the filter criteria - items: - $ref: ../../components/schemas/verifications/Verification.yaml - hasMore: - type: boolean - description: Indicates if more results are available beyond this page - nextCursor: - type: string - description: >- - Cursor to retrieve the next page of results (only present if - hasMore is true) - totalCount: - type: integer - description: Total number of results matching the criteria + $ref: ../../components/schemas/verifications/VerificationListResponse.yaml '400': description: Bad request - Invalid parameters content: diff --git a/package.json b/package.json index 3d3bb2cb..dbaec30c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "build:openapi": "npx @redocly/cli bundle openapi/openapi.yaml -o openapi.yaml && cp openapi.yaml mintlify/openapi.yaml", "prelint:openapi": "npm run build:openapi", - "lint:openapi": "npx @redocly/cli bundle openapi/openapi.yaml -o openapi.yaml && npx @redocly/cli lint openapi.yaml && cp openapi.yaml mintlify/openapi.yaml", + "lint:openapi": "npx @redocly/cli bundle openapi/openapi.yaml -o openapi.yaml && npx @redocly/cli lint openapi.yaml && npx spectral lint openapi.yaml --fail-severity=error && cp openapi.yaml mintlify/openapi.yaml", "lint": "npm run lint:openapi", "broken-links": "cd mintlify && mint broken-links", "validate": "npm run lint",