> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stableyard.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# List account-bound payment methods

> List the extra account-bound methods, such as Vault, that can fund a receive Payment.

Returns additional account-bound methods for this receive Payment and the UPA fixed by the client bearer token. This catalog is separate from public checkout, which stays limited to Direct crypto, Routing and entitled hosted on-ramp methods.

Vault is returned only when the client token has both Payments and Vault access, this UPA can pay the Payment, and the UPA has an active Vault payment source whose chain, token and amount can satisfy the Payment's immutable escrow obligation exactly. Send both the client bearer token and the Payment-specific `X-Stableyard-Payment-Secret`; neither credential is sufficient on its own.


## OpenAPI

````yaml frontend-openapi.json GET /v2/client/me/payments/{paymentId}/payment-methods
openapi: 3.1.0
info:
  title: Stableyard Interfaces & SDK API
  version: 2.0.0-staging
  x-stableyard-api-version: '2026-09-09'
  x-stableyard-supported-api-versions:
    - '2026-09-09'
  summary: >-
    Advanced browser API used by Stableyard Checkout, Add Money, and
    account-bound interfaces.
  description: >

    These endpoints power Stableyard's official interface SDKs, hosted checkout,
    Add Money, and advanced custom browser integrations.


    Most partners should use `@stableyard/react` or `@stableyard/sdk` instead of
    calling these routes directly. A browser must never receive an app secret.
    Public checkout uses a Payment-scoped client secret, while account-bound
    experiences use a short-lived client bearer token created by the partner
    backend.
  x-stableyard-documentation-surface: frontend
servers:
  - url: https://prod-api.stableyard.fi
    description: Production
  - url: https://staging-api-v2.stableyard.fi
    description: Staging
  - url: http://localhost:3001
    description: Local
security: []
tags:
  - name: Authentication
    x-displayName: API authentication
    description: Verify your app ID and app secret before calling UPA APIs.
  - name: Client API
    description: >-
      Account-bound browser and mobile routes authenticated with a short-lived
      client bearer token. App secrets never enter client code.
  - name: Identity & KYC
    description: >-
      Verify the UPA email and run provider-neutral identity verification.
      Managed vaults and fiat payment rails use this same verified UPA identity.
  - name: Payments
    description: >-
      Create escrow-first payments, issue partner-authenticated send
      instructions or executions, power public checkout, and reconcile
      collection through final account settlement.
paths:
  /v2/client/me/payments/{paymentId}/payment-methods:
    get:
      tags:
        - Client API
      summary: List my account-bound Payment methods
      description: >

        Returns additional account-bound methods for this receive Payment and
        the UPA fixed by the Client bearer token. This catalog is intentionally
        separate from the public checkout catalog: public checkout remains
        limited to Direct crypto, Routing, and entitled hosted on-ramp methods.


        Vault is returned only when the Client token has both Payments and Vault
        access, the Payment can be paid by this UPA, and the UPA has an active
        Vault Payment Source whose chain, token, and amount can satisfy the
        Payment's immutable escrow obligation exactly. Send both the
        account-bound Client bearer token and the Payment-specific
        `X-Stableyard-Payment-Secret`; neither credential is sufficient by
        itself.
      operationId: listClientPaymentMethods
      parameters:
        - name: paymentId
          in: path
          required: true
          schema:
            type: string
            pattern: ^payment_[A-Za-z0-9_-]+$
            example: payment_123
          description: Canonical receive Payment whose escrow will be funded.
      responses:
        '200':
          description: Account-bound methods available to this UPA
          headers:
            Stableyard-Version:
              description: >-
                Effective date-based Stableyard API contract version for this
                response.
              schema:
                type: string
                enum:
                  - '2026-09-09'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBoundVaultPaymentMethodsResponse'
              examples:
                vault:
                  summary: Active Vault can fund the Payment escrow
                  value:
                    paymentMethods:
                      - id: vault.stableyard
                        providerCode: vault
                        type: vault
                        displayName: Pay with Stableyard Vault
                        networkCode: arbitrum
                        chainId: 42161
                        tokenAddress: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
                        assetSymbol: USDC
                        decimals: 6
                        available: true
                        availability: ready
                        recommended: true
                        disabledReason: null
                        estimatedSeconds: null
                        minimumAmount: null
                        minimumAmountSource: provider
                        maximumAmount: null
                        executionTypes:
                          - managed_authorization
                        walletFamily: evm
                        requiresAccountContext: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '424':
          $ref: '#/components/responses/FailedDependency'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - clientBearerAuth: []
          clientPaymentSecret: []
components:
  schemas:
    AccountBoundVaultPaymentMethodsResponse:
      type: object
      additionalProperties: false
      required:
        - paymentMethods
      properties:
        paymentMethods:
          type: array
          maxItems: 1
          items:
            $ref: '#/components/schemas/AccountBoundVaultPaymentMethod'
          description: >-
            Contains vault.stableyard when the token-bound UPA has an eligible
            active Vault Payment Source; otherwise the request fails closed.
    AccountBoundVaultPaymentMethod:
      type: object
      additionalProperties: false
      required:
        - id
        - providerCode
        - type
        - displayName
        - networkCode
        - chainId
        - tokenAddress
        - assetSymbol
        - decimals
        - available
        - availability
        - recommended
        - disabledReason
        - estimatedSeconds
        - minimumAmount
        - minimumAmountSource
        - maximumAmount
        - executionTypes
        - walletFamily
        - requiresAccountContext
      properties:
        id:
          type: string
          const: vault.stableyard
        providerCode:
          type: string
          const: vault
        type:
          type: string
          const: vault
        displayName:
          type: string
          const: Pay with Stableyard Vault
        networkCode:
          type: string
          example: arbitrum
        chainId:
          type: integer
          example: 42161
        tokenAddress:
          type: string
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
        assetSymbol:
          type: string
          example: USDC
        decimals:
          type: integer
          minimum: 0
          maximum: 36
          example: 6
        available:
          type: boolean
          const: true
        availability:
          type: string
          const: ready
        recommended:
          type: boolean
          const: true
        disabledReason:
          type: 'null'
        estimatedSeconds:
          type:
            - integer
            - 'null'
          minimum: 1
        minimumAmount:
          anyOf:
            - $ref: '#/components/schemas/NormalizedPaymentAmount'
            - type: 'null'
        minimumAmountSource:
          type: string
          enum:
            - stableyard
            - provider
        maximumAmount:
          anyOf:
            - $ref: '#/components/schemas/NormalizedPaymentAmount'
            - type: 'null'
        executionTypes:
          type: array
          minItems: 1
          maxItems: 1
          items:
            type: string
            const: managed_authorization
        walletFamily:
          type: string
          const: evm
        requiresAccountContext:
          type: boolean
          const: true
          description: >-
            This method can be used only with an account-bound Client token and
            never appears in public checkout discovery.
    ErrorResponse:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
              minLength: 1
              maxLength: 128
              example: bad_request
            message:
              type: string
              minLength: 1
              maxLength: 1000
              example: The request is invalid
            details: {}
    NormalizedPaymentAmount:
      type: object
      additionalProperties: false
      required:
        - amountAtomic
        - amountDecimal
        - assetSymbol
        - decimals
      properties:
        amountAtomic:
          type: string
          pattern: ^[0-9]+$
          example: '10000000'
        amountDecimal:
          type: string
          pattern: ^(0|[1-9]\d*)(\.\d+)?$
          example: '10'
        assetSymbol:
          type: string
          example: USDC
        decimals:
          type: integer
          minimum: 0
          maximum: 36
          example: 6
        chainId:
          type: integer
          example: 42161
        tokenAddress:
          type: string
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
  responses:
    BadRequest:
      description: Bad request
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: BadRequest response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    Unauthorized:
      description: Unauthorized
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: Unauthorized response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    Forbidden:
      description: The app secret does not include the required scope
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: Forbidden response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    NotFound:
      description: Not found
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: NotFound response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    Conflict:
      description: Conflict
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: Conflict response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    UnprocessableEntity:
      description: The requested payment method or refund route is not supported
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: UnprocessableEntity response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    FailedDependency:
      description: Required chain, network, or provider configuration is missing
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: FailedDependency response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
    TooManyRequests:
      description: >-
        Rate limit, payment-option limit, selection cooldown, or temporary abuse
        block
      headers:
        Stableyard-Version:
          description: >-
            Effective date-based Stableyard API contract version for this
            response.
          schema:
            type: string
            enum:
              - '2026-09-09'
        Retry-After:
          description: Seconds until the caller should retry.
          schema:
            type: integer
            minimum: 1
        RateLimit-Limit:
          description: Quota for the most constrained policy.
          schema:
            type: integer
            minimum: 1
        RateLimit-Remaining:
          description: Requests remaining in that policy window.
          schema:
            type: integer
            minimum: 0
        RateLimit-Reset:
          description: Seconds until that policy window resets.
          schema:
            type: integer
            minimum: 0
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            example:
              summary: TooManyRequests response
              value:
                error:
                  code: bad_request
                  message: The request is invalid
                  details: example
  securitySchemes:
    clientBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Stableyard client access token
      description: >-
        Short-lived account-bound token returned by POST
        /v2/client/auth/exchange.
    clientPaymentSecret:
      type: apiKey
      in: header
      name: X-Stableyard-Payment-Secret
      description: >-
        Payment-specific secret used together with an account-bound Client
        bearer token. It proves access to exactly one Payment and must never be
        placed in a URL, analytics event, or log.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.