> ## 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.

# Get interface SDK configuration

> Read an app's browser-safe branding, live capabilities and endpoint templates.

Returns browser-safe branding, the interface capabilities operational now, enriched public Add Money destinations and canonical endpoint templates for an active app. The app ID is public identification, not authentication. Each destination carries its canonical network name, family and token metadata, so clients never infer address validation or decimals from a chain ID.

`publicPaymentCreation.methods` lists only methods enabled for the app and operational now; the method list on a created Payment remains canonical for its exact amount and destination. The response contains no secrets, fees or account data.


## OpenAPI

````yaml frontend-openapi.json GET /v2/public/apps/{appId}/frontend-config
openapi: 3.1.0
info:
  title: Stableyard Interfaces & SDK API
  version: 2.0.0
  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: Sandbox
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: 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/public/apps/{appId}/frontend-config:
    get:
      tags:
        - Authentication
      summary: Get interface SDK configuration
      description: >-
        Returns browser-safe branding, currently operational interface
        capabilities, enriched public Add Money destinations, and canonical
        endpoint templates for an active app. Each destination includes
        canonical network name/family and token metadata so clients never infer
        address validation or decimals from a chain ID. The app ID is public
        identification, not authentication. publicPaymentCreation.methods
        contains only methods that are enabled for the app and operational now.
        The method list on a created Payment remains canonical for its exact
        amount and destination. The response contains no secrets, fees, or
        account data.
      operationId: getPublicFrontendConfig
      parameters:
        - name: appId
          in: path
          required: true
          schema:
            type: string
            example: app_123
      responses:
        '200':
          description: Interface SDK configuration
          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/PublicFrontendConfig'
              examples:
                example:
                  summary: Get interface SDK configuration 200 response
                  value:
                    appId: app_123
                    apiVersion: '2026-09-09'
                    status: active
                    branding:
                      displayName: Acme Inc
                      logoUrl: https://cdn.example.com/acme-logo.png
                      primaryColor: '#5B5BF6'
                    capabilities:
                      checkout:
                        enabled: true
                        integration: payment
                        authentication: payment_client_secret
                      publicPaymentCreation:
                        enabled: true
                        authentication: none
                        purpose: fund_wallet_or_pay_enabled_upa
                        methods:
                          - crypto
                        destinations:
                          - chainId: 8453
                            networkCode: base
                            chainName: Base
                            chainFamily: evm
                            assetSymbol: USDC
                            tokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
                            decimals: 6
                            assetKind: token
                            logoUrl: null
                            minimumAmount: '10'
                            maximumAmount: '1000'
                            available: true
                            disabledReason: null
                        allowedFiatCurrencies:
                          - USD
                        paymentTtlSeconds: 120
                      accountSend:
                        enabled: true
                        authentication: client_bearer
                      depositAddresses:
                        enabled: true
                        authentication: client_bearer
                      onramp:
                        enabled: true
                        integration: payment_option
                    endpoints:
                      checkout: example
                      checkoutCodeExchange: example
                      createPayment: example
                      resolvePaymentRecipient: example
                      getPayment: example
                      paymentMethods: example
                      createPaymentOption: example
                      refreshPaymentOption: example
                      submitPaymentTransaction: example
                      clientExchange: example
                      clientBootstrap: example
                      clientSend: example
                      clientDepositAddresses: '0x1111111111111111111111111111111111111111'
        '404':
          $ref: '#/components/responses/NotFound'
      security: []
components:
  schemas:
    PublicFrontendConfig:
      type: object
      additionalProperties: false
      required:
        - appId
        - apiVersion
        - status
        - branding
        - capabilities
        - endpoints
      properties:
        appId:
          type: string
          example: app_123
        apiVersion:
          $ref: '#/components/schemas/StableyardApiVersion'
        status:
          type: string
          const: active
        branding:
          $ref: '#/components/schemas/PublicMerchantBranding'
        capabilities:
          type: object
          additionalProperties: false
          required:
            - checkout
            - publicPaymentCreation
            - accountSend
            - depositAddresses
            - onramp
          properties:
            checkout:
              type: object
              additionalProperties: false
              required:
                - enabled
                - integration
                - authentication
              properties:
                enabled:
                  type: boolean
                integration:
                  type: string
                  const: payment
                authentication:
                  type: string
                  const: payment_client_secret
            publicPaymentCreation:
              type: object
              additionalProperties: false
              required:
                - enabled
                - authentication
                - purpose
                - methods
                - destinations
                - allowedFiatCurrencies
                - paymentTtlSeconds
              properties:
                enabled:
                  type: boolean
                authentication:
                  type: string
                  const: none
                purpose:
                  type: string
                  const: fund_wallet_or_pay_enabled_upa
                methods:
                  type: array
                  description: >-
                    Methods enabled for the app and operational for at least one
                    configured destination at response time.
                  items:
                    type: string
                    enum:
                      - crypto
                      - routing
                      - onramp
                destinations:
                  type: array
                  items:
                    $ref: '#/components/schemas/PaymentDestinationCapability'
                allowedFiatCurrencies:
                  type: array
                  items:
                    type: string
                    pattern: ^[A-Z]{3}$
                paymentTtlSeconds:
                  type: integer
                  minimum: 120
                  maximum: 3600
            accountSend:
              type: object
              additionalProperties: false
              required:
                - enabled
                - authentication
              properties:
                enabled:
                  type: boolean
                authentication:
                  type: string
                  const: client_bearer
            depositAddresses:
              type: object
              additionalProperties: false
              required:
                - enabled
                - authentication
              properties:
                enabled:
                  type: boolean
                authentication:
                  type: string
                  const: client_bearer
            onramp:
              type: object
              additionalProperties: false
              required:
                - enabled
                - integration
              properties:
                enabled:
                  type: boolean
                integration:
                  type: string
                  const: payment_option
        endpoints:
          type: object
          additionalProperties: false
          required:
            - checkout
            - checkoutCodeExchange
            - createPayment
            - resolvePaymentRecipient
            - getPayment
            - paymentMethods
            - createPaymentOption
            - refreshPaymentOption
            - submitPaymentTransaction
            - clientExchange
            - clientBootstrap
            - clientSend
            - clientDepositAddresses
          properties:
            checkout:
              type: string
            checkoutCodeExchange:
              type: string
            createPayment:
              type: string
            resolvePaymentRecipient:
              type: string
            getPayment:
              type: string
            paymentMethods:
              type: string
            createPaymentOption:
              type: string
            refreshPaymentOption:
              type: string
            submitPaymentTransaction:
              type: string
            clientExchange:
              type: string
            clientBootstrap:
              type: string
            clientSend:
              type: string
            clientDepositAddresses:
              type: string
    StableyardApiVersion:
      type: string
      enum:
        - '2026-08-28'
        - '2026-09-09'
      example: '2026-09-09'
      description: >-
        Immutable date-based contract recorded on the resource. Historical
        values may appear on existing records; only versions advertised in
        x-stableyard-supported-api-versions are accepted for new requests.
    PublicMerchantBranding:
      type: object
      additionalProperties: false
      required:
        - displayName
        - logoUrl
        - primaryColor
      properties:
        displayName:
          type: string
          example: Acme Inc
        logoUrl:
          type:
            - string
            - 'null'
          format: uri
          example: https://cdn.example.com/acme-logo.png
        primaryColor:
          type: string
          pattern: ^#[0-9a-fA-F]{6}$
          example: '#5B5BF6'
    PaymentDestinationCapability:
      type: object
      additionalProperties: false
      required:
        - chainId
        - networkCode
        - chainName
        - chainFamily
        - assetSymbol
        - tokenAddress
        - decimals
        - assetKind
        - logoUrl
        - minimumAmount
        - maximumAmount
        - available
        - disabledReason
      properties:
        chainId:
          type: integer
          minimum: 1
          example: 8453
        networkCode:
          type: string
          example: base
        chainName:
          type: string
          example: Base
        chainFamily:
          type: string
          enum:
            - evm
            - tron
            - btc
            - solana
            - movement
        assetSymbol:
          type: string
          pattern: ^[A-Z0-9]{2,16}$
          example: USDC
        tokenAddress:
          type: string
          example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
        decimals:
          type: integer
          minimum: 0
          maximum: 36
          example: 6
        assetKind:
          type: string
          enum:
            - token
            - native
        logoUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Optional asset logo override. Official Stableyard interface SDKs use
            their bundled chain and asset logos when null.
        minimumAmount:
          type: string
          pattern: ^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.(?:[0-9]*[1-9][0-9]*))$
          example: '10'
        maximumAmount:
          type: string
          pattern: ^(?:[1-9][0-9]*(?:\.[0-9]+)?|0\.(?:[0-9]*[1-9][0-9]*))$
          example: '1000'
        available:
          type: boolean
          const: true
        disabledReason:
          type: 'null'
    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: {}
  responses:
    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: not_found
              value:
                error:
                  code: not_found
                  message: The resource was not found

````

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