Stellar Wallets API

The Wallets API from Stellar — 2 operation(s) for wallets.

OpenAPI Specification

stellar-wallets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 3.0.0
  title: Platform Server Accounts Wallets API
  description: 'The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its API.

    '
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://platform-server.exampleanchor.com
tags:
- name: Wallets
paths:
  /wallets:
    get:
      tags:
      - Wallets
      summary: Get All Wallets
      description: Fetches the list of available wallet providers to populate the dropdown box in the New Disbursement flow. The organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement. By default, soft-deleted wallets are excluded from the response. Use the `include_deleted` parameter to include them.
      operationId: GetAllWallets
      parameters:
      - name: include_deleted
        in: query
        description: When set to `true`, includes soft-deleted wallets in the response. When `false` or omitted, only non-deleted wallets are returned.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: enabled
        in: query
        description: Filter wallets by enabled/disabled status.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: user_managed
        in: query
        description: Filter by user-managed wallets.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: supported_assets
        in: query
        description: Comma-separated list of asset codes or IDs to filter wallets by supported assets (max 20).
        required: false
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: A list of wallets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Wallet'
        '400':
          description: Bad request - validation errors
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  extras:
                    type: object
                    properties:
                      status:
                        type: number
                      message:
                        type: string
                example:
                  error: Not authorized
                  extras:
                    status: 401
                    message: Not authorized
              example:
                error: Not authorized
                extras:
                  status: 401
                  message: Not authorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                example:
                  error: Forbidden
              example:
                error: Forbidden
      security:
      - BearerAuth: []
    post:
      tags:
      - Wallets
      summary: Create Wallet
      description: Creates a new wallet provider that can be used for disbursements. The wallet must be configured with supported assets and proper authentication domains.
      operationId: CreateWallet
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletRequest'
        required: true
      responses:
        '201':
          description: Wallet created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
        '400':
          description: Bad request - validation errors
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          description: Unauthorized
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          description: Forbidden
          $ref: '#/components/responses/ForbiddenResponse'
        '409':
          description: Conflict - wallet name, homepage, or deep link schema already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  extras:
                    type: object
      security:
      - BearerAuth: []
  /wallets/{id}:
    patch:
      tags:
      - Wallets
      summary: Update Wallet
      description: 'This endpoint is used to enable or disable a wallet provider. Note: the organization should coordinate with the wallet provider before selecting a particular wallet provider for a disbursement.'
      operationId: UpdateWallet
      parameters:
      - name: id
        in: path
        description: ID of the wallet to update
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        description: Wallet to be updated
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWalletRequest'
        required: true
      responses:
        '200':
          description: Wallet updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
        '400':
          description: Bad request, usually caused by the `enabled` field missing from the request body.
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          description: Unauthorized
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          description: Forbidden
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          description: Wallet not found
          $ref: '#/components/responses/NotFoundResponse'
      security:
      - BearerAuth: []
    delete:
      tags:
      - Wallets
      summary: Delete Wallet
      description: Soft deletes a wallet provider.
      operationId: DeleteWallet
      parameters:
      - name: id
        in: path
        description: ID of the wallet to delete
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '204':
          description: Wallet deleted successfully
          content: {}
        '401':
          description: Unauthorized
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          description: Forbidden
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          description: Wallet not found
          $ref: '#/components/responses/NotFoundResponse'
      security:
      - BearerAuth: []
components:
  schemas:
    UpdateWalletRequest:
      type: object
      properties:
        name:
          type: string
          description: Human-readable name of the wallet provider
        homepage:
          type: string
          description: Homepage URL of the wallet provider
        deep_link_schema:
          type: string
          description: Deep link schema for the wallet application
        sep_10_client_domain:
          type: string
          description: SEP-10 client domain for authentication
        enabled:
          type: boolean
          description: Whether the wallet is enabled for use
        assets:
          type: array
          description: Array of asset references supported by this wallet
          items:
            oneOf:
            - type: object
              description: Asset reference by ID
              properties:
                id:
                  type: string
                  description: Asset ID
              required:
              - id
            - type: object
              description: Classic asset reference
              properties:
                type:
                  type: string
                  enum:
                  - classic
                code:
                  type: string
                  description: Asset code
                issuer:
                  type: string
                  description: Asset issuer address
              required:
              - type
              - code
              - issuer
            - type: object
              description: Native XLM asset reference
              properties:
                type:
                  type: string
                  enum:
                  - native
              required:
              - type
      minProperties: 1
    Wallet:
      type: object
      properties:
        id:
          type: string
          example: 5ada9ed5-455a-4782-a0ee-160767e0deb1
        name:
          type: string
          example: Vibrant Assist
        homepage:
          type: string
          example: https://vibrantapp.com
        sep_10_client_domain:
          type: string
          example: api-dev.vibrantapp.com
        deep_link_schema:
          type: string
          example: https://vibrantapp.com/sdp-dev
        created_at:
          type: string
          format: date-time
          example: '2023-07-31T20:50:45.648Z'
        updated_at:
          type: string
          format: date-time
          example: '2023-07-31T20:50:45.648Z'
    CreateWalletRequest:
      type: object
      required:
      - name
      - homepage
      - deep_link_schema
      - sep_10_client_domain
      properties:
        name:
          type: string
          description: Human-readable name of the wallet provider
        homepage:
          type: string
          description: Homepage URL of the wallet provider
        deep_link_schema:
          type: string
          description: Deep link schema for the wallet application
        sep_10_client_domain:
          type: string
          description: SEP-10 client domain for authentication
        enabled:
          type: boolean
          description: Whether the wallet is enabled for use
          default: true
        assets:
          type: array
          description: Array of asset references supported by this wallet
          items:
            oneOf:
            - type: object
              description: Asset reference by ID
              properties:
                id:
                  type: string
                  description: Asset ID
              required:
              - id
            - type: object
              description: Classic asset reference
              properties:
                type:
                  type: string
                  enum:
                  - classic
                code:
                  type: string
                  description: Asset code
                issuer:
                  type: string
                  description: Asset issuer address
              required:
              - type
              - code
              - issuer
            - type: object
              description: Native XLM asset reference
              properties:
                type:
                  type: string
                  enum:
                  - native
              required:
              - type
        assets_ids:
          type: array
          description: 'Legacy: Array of asset IDs (cannot be used with assets field)

            '
          items:
            type: string
  responses:
    BadRequestResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: Details about the error
              extras:
                type: object
                properties: {}
    ForbiddenResponse:
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          example:
            error: Forbidden
    NotFoundResponse:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              extras:
                type: object
                properties:
                  status:
                    type: number
                  message:
                    type: string
          example:
            error: Not found
            extras:
              status: 404
              message: Resource not found
    UnauthorizedResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
              extras:
                type: object
                properties:
                  status:
                    type: number
                  message:
                    type: string
          example:
            error: Not authorized
            extras:
              status: 401
              message: Not authorized