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

> ## Agent Instructions
> For new direct REST integrations, use the v2026-04 surfaces. The @fluid-app FairShare SDK continues to use its own published public-v2025-06 contract.
> Authenticate with the header Authorization: Bearer <token>; public storefront read endpoints require no auth.
> Lists use cursor pagination via the page[cursor] and page[limit] query params; follow meta.pagination.next_cursor until it is null.
> Never use /api/company/v1 or /api/v1 paths, page/per_page params, or offset pagination — they are legacy.
> The OpenAPI specs under api-reference/ are the authoritative contracts; prefer them over prose when in doubt. api-reference/storefront-v2026-04.yaml covers the v2026-04 storefront surface (/api/v202604/... paths); api-reference/auth-v0.yaml covers the unversioned auth surface (/api/... paths — authentication, MFA, social auth, and token exchange); api-reference/checkout-v2026-04.yaml covers the v2026-04 checkout surface (/api/checkout/v2026-04/... paths — carts, cart auth, discounts, items, subscriptions, orders, enrollments, and store config); api-reference/public-v2025-06.yaml covers the Public SDK surface used by the @fluid-app FairShare SDK, including its parallel cart lifecycle, browser integrations, versioned payment callbacks, unversioned public utilities, and the cart price-override operation; api-reference/payment-v2026-04.yaml covers the v2026-04 payment gateway admin surface (/api/payment/v2026-04/... paths, bearer-authenticated — gateway CRUD, gateway purchase/authorize/$0-verify, transaction list/show and capture/void/credit, and merchant payment configuration); api-reference/payments-v2026-04.yaml covers the v2026-04 cart payment surface (/api/payments/v2026-04/carts/{cart_token}/... paths, authenticated by the cart token in the path with no bearer — payment-method selection, VGS card tokenization, 3D Secure verification, and PayPal/Braintree/Klarna/Apple Pay flows); api-reference/commerce-v2026-04.yaml covers the v2026-04 commerce order-editing surface (/api/v202604/orders/{order_id}/edits paths, bearer-authenticated — post-checkout order edits that atomically insert items and add adjustments/discounts, with an optional dry-run preview); api-reference/webhooks-v0.yaml covers the unversioned webhooks surface (/api/... paths — webhook registration, delivery payloads, callback registrations, company events, and webhook/callback schemas).
> Successful responses wrap the resource payload alongside a top-level integer status and a meta object.

# Get merchant payment configuration

> Root-admin-only. Returns VGS, Kount, 3DS acquirer, payout, and platform-fee settings for a merchant. Secret fields are obfuscated.



## OpenAPI

````yaml /api-reference/payment-v2026-04.yaml get /api/payment/v2026-04/merchants/{merchant_id}/configuration
openapi: 3.1.0
info:
  title: Fluid Payment API
  version: v2026-04
  description: >-
    Payment gateway and transaction management API. Supports API key
    authentication (fp_live_*/fp_test_*) and JWT bearer tokens.
  contact:
    email: support@fluid.app
  license:
    name: Proprietary
    identifier: LicenseRef-Proprietary
servers:
  - url: https://api.fluid.app
security:
  - bearer_auth: []
tags:
  - name: Gateways
    description: >-
      Manage payment gateways and run gateway-level transactions — purchase,
      authorize, and $0 verification.
  - name: Transactions
    description: >-
      Read transactions and run transaction lifecycle operations — capture,
      void, and credit/refund.
  - name: Merchant Configuration
    description: >-
      Root-admin-only access to a merchant's VGS, Kount, 3DS acquirer, payout,
      and platform-fee settings.
paths:
  /api/payment/v2026-04/merchants/{merchant_id}/configuration:
    parameters:
      - name: merchant_id
        in: path
        required: true
        schema:
          type: integer
        description: Merchant ID or company ID (both are unique-indexed)
    get:
      tags:
        - Merchant Configuration
      summary: Get merchant payment configuration
      description: >-
        Root-admin-only. Returns VGS, Kount, 3DS acquirer, payout, and
        platform-fee settings for a merchant. Secret fields are obfuscated.
      operationId: showMerchantConfiguration
      responses:
        '200':
          description: Merchant payment configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantConfigurationResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    MerchantConfigurationResponse:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          $ref: '#/components/schemas/MerchantConfiguration'
        meta:
          $ref: '#/components/schemas/Meta'
    MerchantConfiguration:
      type: object
      properties:
        vgs_client_id:
          type:
            - string
            - 'null'
          description: VGS client ID
        vgs_client_secret:
          type:
            - string
            - 'null'
          description: VGS client secret (obfuscated on read)
        vgs_environment:
          type:
            - string
            - 'null'
          enum:
            - live
            - sandbox
            - null
          description: VGS environment
        kount_enterprise:
          type:
            - boolean
            - 'null'
          example: false
          description: >-
            When true, this merchant uses its own Kount 360 account; credentials
            come from kount_api_key + kount_webhook_signing_key. When false,
            Fluid's master Kount account is used (env-aware) and
            kount_channel_prefix segments traffic.
        kount_api_key:
          type:
            - string
            - 'null'
          description: Kount API key (obfuscated on read)
        kount_environment:
          type:
            - string
            - 'null'
          enum:
            - sandbox
            - production
            - null
          description: Kount environment
        kount_client_id:
          type:
            - string
            - 'null'
          example: '150953359757648'
          description: >-
            Per-merchant Kount Client ID (MID). Required when kount_enterprise
            is true; used by the Kount Web SDK on the checkout page so DDC data
            lands in this merchant's Kount tenant. Plain text —
            public-by-design.
        kount_channel_prefix:
          type:
            - string
            - 'null'
          maxLength: 63
          description: >-
            Bare Kount channel prefix for the merchant (e.g. "yoli" or
            "rain-international"); appended to source tokens at runtime to form
            channel values like "yoli-WEB". Root-admin write only.
        kount_webhook_signing_key:
          type:
            - string
            - 'null'
          example: MG9h********Tg==
          description: >-
            Obfuscated RSA public key the merchant gets from their Kount 360
            portal. Used to verify decision webhooks for enterprise accounts.
            Returned masked.
        kount_accounts:
          type: array
          description: >-
            Complete persisted Kount account set. Contains up to one sandbox
            account and one production account; kount_environment selects which
            account routes checkout traffic.
          items:
            $ref: '#/components/schemas/KountAccount'
        network_tokens_enabled:
          type:
            - boolean
            - 'null'
          description: Whether network tokens are enabled
        vgs_cmp_vault_id:
          type:
            - string
            - 'null'
          description: VGS CMP vault ID for cross-vault proxy
        vgs_proxy_username:
          type:
            - string
            - 'null'
          description: VGS proxy username
        vgs_proxy_password:
          type:
            - string
            - 'null'
          description: VGS proxy password (obfuscated on read)
        network_3ds_setting:
          type: object
          description: Per-network 3DS acquirer settings
          properties:
            visa_acquirer_bin:
              type: string
            visa_acquirer_merchant_id:
              type: string
            mastercard_acquirer_bin:
              type: string
            mastercard_acquirer_merchant_id:
              type: string
            amex_acquirer_bin:
              type: string
            amex_acquirer_merchant_id:
              type: string
            amex_acquirer_requestor_id:
              type: string
            amex_acquirer_requestor_name:
              type: string
            discover_acquirer_bin:
              type: string
            discover_acquirer_merchant_id:
              type: string
            discover_acquirer_requestor_id:
              type: string
            discover_acquirer_requestor_name:
              type: string
        payouts_settings:
          type: object
          description: Payout collection settings
          properties:
            payout_collection_enabled:
              type: boolean
              description: Whether automatic payout collection is enabled for the merchant.
            payout_collection_schedule:
              type: string
              enum:
                - hourly_4
                - daily
                - weekly
              description: >
                Cadence at which payouts are collected: `hourly_4` (every 4
                hours),

                `daily`, or `weekly`.
            minimum_payout_amount:
              type: number
              description: Minimum balance required before a payout is collected.
            last_payout_collection_at:
              type: string
              format: date-time
              description: Timestamp of the most recent payout collection (ISO 8601).
        platform_fee_rate:
          type: number
          description: Fluid platform fee rate (percentage)
          example: 2.9
        platform_fee_fixed:
          type: number
          description: Fluid platform fee fixed amount (USD)
          example: 0.3
    Meta:
      type: object
      required:
        - request_id
        - timestamp
      properties:
        request_id:
          type:
            - string
            - 'null'
          description: |
            Unique identifier for this request, echoed on every response for log
            correlation and support; `null` when none was assigned.
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp (UTC) of when the response was generated.
    UnauthorizedResponse:
      type: object
      required:
        - message
        - meta
      properties:
        message:
          type: string
          description: Human-readable reason the credentials were rejected.
        status:
          type: string
          description: Error status string, when present.
        meta:
          $ref: '#/components/schemas/Meta'
    ForbiddenResponse:
      description: |
        Authenticated but not authorized. Two body shapes occur:
        - a bare `message` when the credential lacks the required role/tier
          (e.g. a non-admin JWT calling an admin endpoint)
        - a `status` + `message` envelope from payment API endpoint gates
      anyOf:
        - type: object
          required:
            - message
            - meta
          properties:
            message:
              type: string
            meta:
              $ref: '#/components/schemas/Meta'
        - type: object
          required:
            - status
            - message
            - meta
          properties:
            status:
              type: string
              enum:
                - error
            message:
              type: string
            meta:
              $ref: '#/components/schemas/Meta'
    ErrorResponse:
      oneOf:
        - type: object
          required:
            - status
            - message
            - meta
          properties:
            status:
              type: string
              enum:
                - error
              description: Always `error` for this envelope.
            message:
              type: string
              description: Human-readable description of what went wrong.
            meta:
              $ref: '#/components/schemas/Meta'
        - type: object
          required:
            - error_message
            - errors
            - meta
          properties:
            error_message:
              type: string
              description: Human-readable summary of the failure.
            errors:
              $ref: '#/components/schemas/ErrorBag'
            meta:
              $ref: '#/components/schemas/Meta'
    KountAccount:
      type: object
      description: >-
        One Kount account configuration. Sandbox and production are persisted as
        separate accounts; the active environment is mirrored by
        MerchantConfiguration.kount_environment.
      required:
        - environment
        - enterprise
      properties:
        environment:
          type: string
          enum:
            - sandbox
            - production
          description: Kount account environment.
        enterprise:
          type: boolean
          description: >-
            When true, this account uses merchant-owned Kount 360 credentials.
            When false, it uses Fluid's portfolio credentials with a channel
            prefix.
        channel_prefix:
          type:
            - string
            - 'null'
          maxLength: 63
          description: Portfolio account channel prefix. Required when enterprise is false.
        api_key:
          type:
            - string
            - 'null'
          description: >-
            Enterprise Kount API key. Obfuscated on read; omit or send
            obfuscated value to preserve the stored secret.
        client_id:
          type:
            - string
            - 'null'
          example: '150953359757648'
          description: >-
            Enterprise Kount Client ID (MID). Plain text and public-by-design
            for the checkout DDC script.
        webhook_signing_key:
          type:
            - string
            - 'null'
          description: >-
            Enterprise webhook signing key. Obfuscated on read; omit or send
            obfuscated value to preserve the stored secret.
    ErrorBag:
      description: >-
        Validation errors keyed by field, a list of errors, a single error
        message, or null when no structured error details are available.
      anyOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/ErrorValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/ErrorValue'
        - type: 'null'
    ErrorValue:
      description: A validation or API error value.
      anyOf:
        - type: string
        - type: array
          items:
            type: string
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
    JsonValue:
      description: >-
        Any valid JSON value for provider, integration, theme, metadata, or
        other dynamic payloads whose keys are not fixed by the API contract.
      anyOf:
        - type: string
        - type: number
        - type: boolean
        - type: 'null'
        - type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
  responses:
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedResponse'
    Forbidden:
      description: Authenticated but not authorized for this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenResponse'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: API key (fp_live_*/fp_test_*) or JWT bearer token

````