> ## 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 payee (admin)

> Add or update the payout bank details for one legal payout entity in one payout currency. Upserts by (entityName, currency): one bank account per entity per currency, and the beneficiary name must match the account holder — the legal entity itself. accountNumber is write-only and required the first time the payee is set; omit it on later updates to keep the stored value. Admin-only.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml put /billing/payees
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/payees:
    put:
      tags:
        - Storefront Billing
      summary: Set payout payee (admin)
      description: >-
        Add or update the payout bank details for one legal payout entity in one
        payout currency. Upserts by (entityName, currency): one bank account per
        entity per currency, and the beneficiary name must match the account
        holder — the legal entity itself. accountNumber is write-only and
        required the first time the payee is set; omit it on later updates to
        keep the stored value. Admin-only.
      operationId: setPayoutPayee
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entityName:
                  description: >-
                    Label for the legal payout entity this bank account belongs
                    to (e.g. "Acme Media India Pvt Ltd"). Together with the
                    payout currency it identifies the payee: one bank account
                    per entity per currency.
                  type: string
                  minLength: 1
                  maxLength: 255
                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}$
                isPrimary:
                  description: >-
                    Set true to make this the customer's PRIMARY payout entity
                    (the one returned as `payoutDetails` on GET /billing),
                    demoting any other primary payee. Omit to leave the current
                    primary/non-primary status unchanged. Exactly one payee per
                    customer is primary: a customer's FIRST payee always becomes
                    the primary regardless of this field.
                  type: boolean
              required:
                - entityName
                - beneficiaryName
                - addressLine1
                - city
                - postalCode
                - countryCode
                - bankIdentifierType
                - bankIdentifierValue
                - currency
      responses:
        '200':
          description: Set payout payee (admin)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPayoutPayeeResponse'
        '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:
    SetPayoutPayeeResponse:
      type: object
      properties:
        payee:
          $ref: '#/components/schemas/PayoutPayee'
      required:
        - payee
      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
    PayoutPayee:
      description: >-
        A payout payee — the bank account for one legal payout entity in one
        payout currency (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))$
        id:
          description: Payee ID
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        entityName:
          description: >-
            Label for the legal payout entity this bank account belongs to (e.g.
            "Acme Media India Pvt Ltd"). Together with the payout currency it
            identifies the payee: one bank account per entity per currency.
          type: string
          minLength: 1
          maxLength: 255
        currency:
          description: >-
            Payout currency for this payee (ISO 4217 code). One bank account per
            entity per currency.
          type: string
        isPrimary:
          description: >-
            Whether this is the customer's PRIMARY payout entity — the one
            returned as `payoutDetails` on GET /billing. At most one payee per
            customer is primary.
          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:
        - beneficiaryName
        - addressLine1
        - addressLine2
        - city
        - region
        - postalCode
        - countryCode
        - accountNumberLast4
        - bankIdentifierType
        - bankIdentifierValue
        - completedAt
        - id
        - entityName
        - currency
        - isPrimary
        - 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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````