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

# Set payout details (admin)

> Add or replace the payout bank details Scope3 uses to pay the storefront out by bank transfer: beneficiary name and address, account number or IBAN (write-only — reads return the last 4 characters), one bank identifier (Fedwire/ABA routing number, CHIPS ABA, SWIFT-BIC, or local bank code), and the payout currency. Admin-only.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml put /billing/payout-details
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: |-
    REST API for partners to manage storefronts, inventory sources, and billing.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/storefront`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for storefronts
  - name: AI Usage
    description: Storefront AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /billing/payout-details:
    put:
      tags:
        - Storefront Billing
      summary: Set payout details (admin)
      description: >-
        Add or replace the payout bank details Scope3 uses to pay the storefront
        out by bank transfer: beneficiary name and address, account number or
        IBAN (write-only — reads return the last 4 characters), one bank
        identifier (Fedwire/ABA routing number, CHIPS ABA, SWIFT-BIC, or local
        bank code), and the payout currency. Admin-only.
      operationId: setPayoutDetails
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                beneficiaryName:
                  description: >-
                    Legal name of the payout beneficiary — the account holder
                    the bank pays, exactly as it appears on the bank account.
                  type: string
                  minLength: 1
                  maxLength: 255
                addressLine1:
                  description: Beneficiary street address, line 1.
                  type: string
                  minLength: 1
                  maxLength: 255
                addressLine2:
                  description: Beneficiary street address, line 2 (optional).
                  type: string
                  maxLength: 255
                city:
                  description: Beneficiary city.
                  type: string
                  minLength: 1
                  maxLength: 128
                region:
                  description: Beneficiary state/province/region (optional).
                  type: string
                  maxLength: 128
                postalCode:
                  description: Beneficiary postal/ZIP code.
                  type: string
                  minLength: 1
                  maxLength: 32
                countryCode:
                  description: >-
                    Beneficiary country as an ISO 3166-1 alpha-2 code (e.g.
                    "US", "GB").
                  example: US
                  type: string
                  pattern: ^[A-Z]{2}$
                accountNumber:
                  description: >-
                    Bank account number OR IBAN (6–34 alphanumeric characters;
                    spaces are stripped). Never returned in full by the API —
                    reads expose only the last 4 characters. Required the first
                    time payout details are set; may be omitted on later updates
                    to keep the stored account number unchanged.
                  type: string
                bankIdentifierType:
                  description: >-
                    Which bank identifier system `bankIdentifierValue` uses:
                    FEDWIRE_ABA (US Fedwire/ABA routing number, 9 digits),
                    CHIPS_ABA (CHIPS ABA number, 9 digits), SWIFT_BIC (SWIFT/BIC
                    code, 8 or 11 characters), or BANK_CODE (a local/domestic
                    bank code for banks without a SWIFT-BIC).
                  type: string
                  enum:
                    - FEDWIRE_ABA
                    - CHIPS_ABA
                    - SWIFT_BIC
                    - BANK_CODE
                bankIdentifierValue:
                  description: >-
                    The bank identifier itself, matching `bankIdentifierType`: a
                    9-digit Fedwire/ABA routing number, a 9-digit CHIPS ABA
                    number, an 8/11-character SWIFT-BIC, or a local bank code
                    (1–34 letters/digits/dashes).
                  type: string
                  minLength: 1
                  maxLength: 34
                currency:
                  description: >-
                    Payout currency as a 3-letter uppercase ISO 4217 code — the
                    currency Scope3 pays this account out in.
                  example: USD
                  type: string
                  pattern: ^[A-Z]{3}$
              required:
                - beneficiaryName
                - addressLine1
                - city
                - postalCode
                - countryCode
                - bankIdentifierType
                - bankIdentifierValue
                - currency
      responses:
        '200':
          description: Set payout details (admin)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPayoutDetailsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    SetPayoutDetailsResponse:
      type: object
      properties:
        billing:
          $ref: '#/components/schemas/StorefrontBillingResponse'
      required:
        - billing
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    StorefrontBillingResponse:
      description: >-
        Storefront billing configuration. Storefront billing setup is optional
        only for official Scope3 sales-adapter storefronts on existing
        downstream platform settlement agreements. Third-party sales agents and
        finished-product/pass-through sources are normal Interchange-cleared
        storefront sources and still require payout bank details. Seller-cleared
        settlement is not yet configurable for normal storefronts.
      type: object
      properties:
        onboardingStatus:
          description: >-
            Payout setup status. 'complete' once payout bank details are on
            file.
          type: string
          enum:
            - pending
            - complete
            - restricted
        platformFeePercent:
          description: Platform fee percentage
          nullable: true
          type: number
        fees:
          description: Additional fees
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/BillingFeeOutput'
        currency:
          description: Payout currency (ISO 4217 code)
          nullable: true
          type: string
        country:
          description: ISO 3166-1 alpha-2 country used for billing
          nullable: true
          type: string
        defaultNetDays:
          description: Payment terms in days
          nullable: true
          type: number
        payoutDetails:
          description: >-
            Masked payout bank details on file, or null when none have been
            added yet
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PayoutDetails'
        inherited:
          description: Whether this billing config is inherited from a parent customer
          type: boolean
        createdAt:
          description: Creation timestamp (ISO 8601)
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        updatedAt:
          description: Last update timestamp (ISO 8601)
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - onboardingStatus
        - platformFeePercent
        - fees
        - currency
        - country
        - defaultNetDays
        - payoutDetails
        - inherited
        - createdAt
        - updatedAt
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
    BillingFeeOutput:
      description: An additional billing fee entry
      type: object
      properties:
        name:
          description: Fee label
          type: string
          minLength: 1
          maxLength: 255
        description:
          description: Fee description
          type: string
          maxLength: 500
        feePercent:
          description: Fee percentage (0–100)
          type: number
          minimum: 0
          maximum: 100
      required:
        - name
        - feePercent
      additionalProperties: false
    PayoutDetails:
      description: >-
        Payout bank details on file (masked): the account number is reduced to
        its last 4 characters.
      type: object
      properties:
        beneficiaryName:
          description: Payout beneficiary legal name
          type: string
        addressLine1:
          description: Beneficiary street address, line 1
          type: string
        addressLine2:
          description: Beneficiary street address, line 2
          nullable: true
          type: string
        city:
          description: Beneficiary city
          type: string
        region:
          description: Beneficiary state/province/region
          nullable: true
          type: string
        postalCode:
          description: Beneficiary postal/ZIP code
          type: string
        countryCode:
          description: Beneficiary country (ISO 3166-1 alpha-2)
          type: string
        accountNumberLast4:
          description: >-
            Last 4 characters of the account number or IBAN. The full value is
            never returned by the API.
          type: string
        bankIdentifierType:
          description: >-
            Which bank identifier system `bankIdentifierValue` uses: FEDWIRE_ABA
            (US Fedwire/ABA routing number, 9 digits), CHIPS_ABA (CHIPS ABA
            number, 9 digits), SWIFT_BIC (SWIFT/BIC code, 8 or 11 characters),
            or BANK_CODE (a local/domestic bank code for banks without a
            SWIFT-BIC).
          type: string
          enum:
            - FEDWIRE_ABA
            - CHIPS_ABA
            - SWIFT_BIC
            - BANK_CODE
        bankIdentifierValue:
          description: >-
            The bank identifier (routing number, CHIPS ABA, SWIFT-BIC, or local
            bank code)
          type: string
        completedAt:
          description: When payout details were last completed (ISO 8601)
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - beneficiaryName
        - addressLine1
        - addressLine2
        - city
        - region
        - postalCode
        - countryCode
        - accountNumberLast4
        - bankIdentifierType
        - bankIdentifierValue
        - completedAt
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````