diff --git a/.stainless/stainless.yml b/.stainless/stainless.yml index 781afc91..6995e666 100644 --- a/.stainless/stainless.yml +++ b/.stainless/stainless.yml @@ -406,6 +406,13 @@ resources: methods: list: get /uma-providers + vasps: + models: + vasp: '#/components/schemas/Vasp' + vasp_list_response: '#/components/schemas/VaspListResponse' + methods: + list: get /vasps + tokens: models: permission: '#/components/schemas/Permission' diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index c024979a..fdf0444a 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -33,6 +33,8 @@ tags: description: Internal account management endpoints for creating and managing internal accounts - name: External Accounts description: External account management endpoints for creating and managing external bank accounts + - name: VASPs + description: Directory of Virtual Asset Service Providers (exchanges and other custodial platforms) recognized for counterparty declarations. - name: Same-Currency Transfers description: Endpoints for transferring funds between internal and external accounts with the same currency - name: Cross-Currency Transfers @@ -5432,6 +5434,69 @@ paths: application/json: schema: $ref: '#/components/schemas/Error500' + /vasps: + get: + summary: List VASPs + description: | + Retrieve the directory of Virtual Asset Service Providers (exchanges and + other custodial platforms) recognized for counterparty declarations. + Search by name to find the VASP that custodies a counterparty account. + + The `vaspName` field in each result is the value to pass as `vaspName` + when declaring a VASP-hosted counterparty. + operationId: listVasps + tags: + - VASPs + security: + - BasicAuth: [] + parameters: + - name: search + in: query + description: Filter to VASPs whose name matches this string + required: false + schema: + type: string + example: kraken + - name: limit + in: query + description: Maximum number of results to return (default 20, max 100) + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + in: query + description: Cursor for pagination (returned from previous request) + required: false + schema: + type: string + responses: + '200': + description: Successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VaspListResponse' + '400': + description: Bad request - Invalid parameters + content: + application/json: + schema: + $ref: '#/components/schemas/Error400' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error401' + '500': + description: Internal service error + content: + application/json: + schema: + $ref: '#/components/schemas/Error500' /tokens: post: summary: Create a new API token @@ -22934,6 +22999,41 @@ components: totalCount: type: integer description: Total number of transactions matching the criteria (excluding pagination) + Vasp: + type: object + required: + - vaspName + - displayName + properties: + vaspName: + type: string + description: Canonical name for this VASP. Pass this value as `vaspName` when declaring a VASP-hosted counterparty. + example: Kraken + displayName: + type: string + description: Human-friendly display name for this VASP. + example: Kraken + description: A Virtual Asset Service Provider (VASP) — an exchange or other custodial platform — recognized for counterparty declarations. + VaspListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of VASPs matching the filter criteria + items: + $ref: '#/components/schemas/Vasp' + 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 Permission: type: string enum: diff --git a/mintlify/style.css b/mintlify/style.css index 0131dfb6..74e0f4b5 100644 --- a/mintlify/style.css +++ b/mintlify/style.css @@ -1372,6 +1372,12 @@ ul.sidebar-group > li[data-title="Available UMA Providers"] > button::before { background-image: url('/images/icons/at.svg') !important; } +/* VASPs - globe */ +.sidebar-group > li[data-title="VASPs"] > button::before, +ul.sidebar-group > li[data-title="VASPs"] > button::before { + background-image: url('/images/icons/globe.svg') !important; +} + /* API Tokens - key */ .sidebar-group > li[data-title="API Tokens"] > button::before, ul.sidebar-group > li[data-title="API Tokens"] > button::before { diff --git a/openapi.yaml b/openapi.yaml index c024979a..fdf0444a 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -33,6 +33,8 @@ tags: description: Internal account management endpoints for creating and managing internal accounts - name: External Accounts description: External account management endpoints for creating and managing external bank accounts + - name: VASPs + description: Directory of Virtual Asset Service Providers (exchanges and other custodial platforms) recognized for counterparty declarations. - name: Same-Currency Transfers description: Endpoints for transferring funds between internal and external accounts with the same currency - name: Cross-Currency Transfers @@ -5432,6 +5434,69 @@ paths: application/json: schema: $ref: '#/components/schemas/Error500' + /vasps: + get: + summary: List VASPs + description: | + Retrieve the directory of Virtual Asset Service Providers (exchanges and + other custodial platforms) recognized for counterparty declarations. + Search by name to find the VASP that custodies a counterparty account. + + The `vaspName` field in each result is the value to pass as `vaspName` + when declaring a VASP-hosted counterparty. + operationId: listVasps + tags: + - VASPs + security: + - BasicAuth: [] + parameters: + - name: search + in: query + description: Filter to VASPs whose name matches this string + required: false + schema: + type: string + example: kraken + - name: limit + in: query + description: Maximum number of results to return (default 20, max 100) + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + in: query + description: Cursor for pagination (returned from previous request) + required: false + schema: + type: string + responses: + '200': + description: Successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/VaspListResponse' + '400': + description: Bad request - Invalid parameters + content: + application/json: + schema: + $ref: '#/components/schemas/Error400' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error401' + '500': + description: Internal service error + content: + application/json: + schema: + $ref: '#/components/schemas/Error500' /tokens: post: summary: Create a new API token @@ -22934,6 +22999,41 @@ components: totalCount: type: integer description: Total number of transactions matching the criteria (excluding pagination) + Vasp: + type: object + required: + - vaspName + - displayName + properties: + vaspName: + type: string + description: Canonical name for this VASP. Pass this value as `vaspName` when declaring a VASP-hosted counterparty. + example: Kraken + displayName: + type: string + description: Human-friendly display name for this VASP. + example: Kraken + description: A Virtual Asset Service Provider (VASP) — an exchange or other custodial platform — recognized for counterparty declarations. + VaspListResponse: + type: object + required: + - data + - hasMore + properties: + data: + type: array + description: List of VASPs matching the filter criteria + items: + $ref: '#/components/schemas/Vasp' + 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 Permission: type: string enum: diff --git a/openapi/components/schemas/vasps/Vasp.yaml b/openapi/components/schemas/vasps/Vasp.yaml new file mode 100644 index 00000000..42023cde --- /dev/null +++ b/openapi/components/schemas/vasps/Vasp.yaml @@ -0,0 +1,18 @@ +type: object +required: + - vaspName + - displayName +properties: + vaspName: + type: string + description: >- + Canonical name for this VASP. Pass this value as `vaspName` when + declaring a VASP-hosted counterparty. + example: Kraken + displayName: + type: string + description: Human-friendly display name for this VASP. + example: Kraken +description: >- + A Virtual Asset Service Provider (VASP) — an exchange or other custodial + platform — recognized for counterparty declarations. diff --git a/openapi/components/schemas/vasps/VaspListResponse.yaml b/openapi/components/schemas/vasps/VaspListResponse.yaml new file mode 100644 index 00000000..7ee8c214 --- /dev/null +++ b/openapi/components/schemas/vasps/VaspListResponse.yaml @@ -0,0 +1,21 @@ +type: object +required: + - data + - hasMore +properties: + data: + type: array + description: List of VASPs matching the filter criteria + items: + $ref: ./Vasp.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/openapi.yaml b/openapi/openapi.yaml index c3dc1e69..8c164aaf 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -40,6 +40,10 @@ tags: description: Internal account management endpoints for creating and managing internal accounts - name: External Accounts description: External account management endpoints for creating and managing external bank accounts + - name: VASPs + description: >- + Directory of Virtual Asset Service Providers (exchanges and other + custodial platforms) recognized for counterparty declarations. - name: Same-Currency Transfers description: Endpoints for transferring funds between internal and external accounts with the same currency - name: Cross-Currency Transfers @@ -267,6 +271,8 @@ paths: $ref: paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml /uma-providers: $ref: paths/uma_providers/uma_providers.yaml + /vasps: + $ref: paths/vasps/vasps.yaml /tokens: $ref: paths/tokens/tokens.yaml /tokens/{tokenId}: diff --git a/openapi/paths/vasps/vasps.yaml b/openapi/paths/vasps/vasps.yaml new file mode 100644 index 00000000..119c53dc --- /dev/null +++ b/openapi/paths/vasps/vasps.yaml @@ -0,0 +1,62 @@ +get: + summary: List VASPs + description: | + Retrieve the directory of Virtual Asset Service Providers (exchanges and + other custodial platforms) recognized for counterparty declarations. + Search by name to find the VASP that custodies a counterparty account. + + The `vaspName` field in each result is the value to pass as `vaspName` + when declaring a VASP-hosted counterparty. + operationId: listVasps + tags: + - VASPs + security: + - BasicAuth: [] + parameters: + - name: search + in: query + description: Filter to VASPs whose name matches this string + required: false + schema: + type: string + example: kraken + - name: limit + in: query + description: Maximum number of results to return (default 20, max 100) + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + in: query + description: Cursor for pagination (returned from previous request) + required: false + schema: + type: string + responses: + '200': + description: Successful operation + content: + application/json: + schema: + $ref: ../../components/schemas/vasps/VaspListResponse.yaml + '400': + description: Bad request - Invalid parameters + content: + application/json: + schema: + $ref: ../../components/schemas/errors/Error400.yaml + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: ../../components/schemas/errors/Error401.yaml + '500': + description: Internal service error + content: + application/json: + schema: + $ref: ../../components/schemas/errors/Error500.yaml