JustiFi Fee Configurations API

Standard Fee Configurations allow platforms to set per-sub-account fee rates that are automatically applied at payment time. Configurations are managed per fee type — creating a new configuration for the same fee type automatically retires the previous one. For a detailed guide on configurable fees, including the fee hierarchy, calculation formula, and examples, see the [Configurable Fees documentation](https://docs.justifi.tech/configurableFees/overview).

Operations 5

GET /sub_accounts/{id}/fee_configurations List Fee Configurations #
GET /sub_accounts/{id}/fee_configurations/scheduled List Scheduled Fee Configurations #
POST /sub_accounts/{id}/fee_configurations/{fee_type} Create a Fee Configuration #
GET /sub_accounts/{id}/fee_configurations/{fee_type} Get a Fee Configuration #
GET /sub_accounts/{id}/fee_configurations/{fee_type}/history Get Fee Configuration History #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/justifi-fee-configurations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

justifi-fee-configurations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '## Introduction


    The JustiFi API is a REST-based payment processing API.'
  title: JustiFi API Documentation Fee Configurations API
  termsOfService: https://justifi.ai/terms-and-conditions
  x-logo:
    url: https://justifi-brand-assets.s3.us-east-2.amazonaws.com/justifi-light-bg.png
  contact:
    email: api-development@justifi.ai
servers:
- url: https://api.justifi.ai/v1
  description: JustiFi API
tags:
- name: Fee Configurations
  description: 'Standard Fee Configurations allow platforms to set per-sub-account fee rates that are automatically applied at payment time. Configurations are managed per fee type — creating a new configuration for the same fee type automatically retires the previous one.


    For a detailed guide on configurable fees, including the fee hierarchy, calculation formula, and examples, see the Configurable Fees documentation.'
paths:
  /sub_accounts/{id}/fee_configurations:
    get:
      summary: List Fee Configurations
      description: 'List all active Standard Fee Configurations for a sub account. Returns configurations where the current time is between `effective_start` and `effective_end` (or `effective_end` is null).


        This endpoint supports pagination.'
      operationId: ListFeeConfigurations
      tags:
      - Fee Configurations
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/pagination-limit'
      - $ref: '#/components/parameters/pagination-after'
      - $ref: '#/components/parameters/pagination-before'
      responses:
        '200':
          description: Successfully list fee configurations
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope-list'
                - properties:
                    type:
                      example: array
                    data:
                      items:
                        $ref: '#/components/schemas/StandardFeeConfiguration'
  /sub_accounts/{id}/fee_configurations/scheduled:
    get:
      summary: List Scheduled Fee Configurations
      description: 'List Standard Fee Configurations with a future `effective_start` that haven''t taken effect yet.


        This endpoint supports pagination.'
      operationId: ListScheduledFeeConfigurations
      tags:
      - Fee Configurations
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/pagination-limit'
      - $ref: '#/components/parameters/pagination-after'
      - $ref: '#/components/parameters/pagination-before'
      responses:
        '200':
          description: Successfully list scheduled fee configurations
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope-list'
                - properties:
                    type:
                      example: array
                    data:
                      items:
                        $ref: '#/components/schemas/StandardFeeConfiguration'
  /sub_accounts/{id}/fee_configurations/{fee_type}:
    post:
      summary: Create a Fee Configuration
      description: 'Create a Standard Fee Configuration for a specific fee type on a sub account.


        If an active configuration already exists for the same fee type, it is automatically retired — its `effective_end` is set to the new configuration''s `effective_start`.


        There is no update or delete operation. To change a fee rate, create a new configuration for the same fee type.'
      operationId: CreateFeeConfiguration
      tags:
      - Fee Configurations
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/idempotency-key-header'
      - name: fee_type
        in: path
        required: true
        description: the fee type to configure
        schema:
          type: string
          enum:
          - processing_ecomm
          - processing_card_present
          - processing_ach
          - processing_ach_expedited
          - visa_brand_ecomm
          - visa_brand_card_present
          - mastercard_brand_ecomm
          - mastercard_brand_card_present
          - amex_brand_ecomm
          - amex_brand_card_present
          - discover_brand_ecomm
          - discover_brand_card_present
          - platform
          example: processing_ecomm
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                variable_rate:
                  description: percentage rate applied to the payment amount. `2.75` = 2.75%
                  type: number
                  example: 2.75
                transaction_fee_cents:
                  description: flat fee in cents added to each transaction (defaults to `0`)
                  type: integer
                  example: 25
                fee_cap_cents:
                  description: maximum fee amount in cents; if the calculated fee exceeds this, the cap is used instead
                  type:
                  - integer
                  - 'null'
                  example: 1000
                effective_start:
                  description: when the configuration takes effect (UTC); defaults to immediately
                  type: string
                  format: date-time
                  example: '2026-04-01T00:00:00Z'
                effective_end:
                  description: when the configuration expires (UTC); must be later than `effective_start`, so the current time or earlier is rejected; `null` means it stays active indefinitely. Only accepted on optional fee types (brand-specific and `platform`).
                  type:
                  - string
                  - 'null'
                  format: date-time
                  example: null
              required:
              - variable_rate
      responses:
        '201':
          description: Fee configuration was created successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: standard_fee_configuration
                    data:
                      $ref: '#/components/schemas/StandardFeeConfiguration'
    get:
      summary: Get a Fee Configuration
      description: Get the active Standard Fee Configuration for a specific fee type on a sub account. Returns 404 if no active configuration exists for that fee type.
      operationId: GetFeeConfiguration
      tags:
      - Fee Configurations
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      - name: fee_type
        in: path
        required: true
        description: the fee type to retrieve
        schema:
          type: string
          enum:
          - processing_ecomm
          - processing_card_present
          - processing_ach
          - processing_ach_expedited
          - visa_brand_ecomm
          - visa_brand_card_present
          - mastercard_brand_ecomm
          - mastercard_brand_card_present
          - amex_brand_ecomm
          - amex_brand_card_present
          - discover_brand_ecomm
          - discover_brand_card_present
          - platform
          example: processing_ecomm
      responses:
        '200':
          description: Successfully retrieve a fee configuration
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: standard_fee_configuration
                    data:
                      $ref: '#/components/schemas/StandardFeeConfiguration'
  /sub_accounts/{id}/fee_configurations/{fee_type}/history:
    get:
      summary: Get Fee Configuration History
      description: 'List all Standard Fee Configurations for a specific fee type on a sub account, including active, retired, and scheduled configurations. Results are ordered by `effective_start` descending.


        This endpoint supports pagination.'
      operationId: GetFeeConfigurationHistory
      tags:
      - Fee Configurations
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      - name: fee_type
        in: path
        required: true
        description: the fee type to retrieve history for
        schema:
          type: string
          enum:
          - processing_ecomm
          - processing_card_present
          - processing_ach
          - processing_ach_expedited
          - visa_brand_ecomm
          - visa_brand_card_present
          - mastercard_brand_ecomm
          - mastercard_brand_card_present
          - amex_brand_ecomm
          - amex_brand_card_present
          - discover_brand_ecomm
          - discover_brand_card_present
          - platform
          example: processing_ecomm
      - $ref: '#/components/parameters/pagination-limit'
      - $ref: '#/components/parameters/pagination-after'
      - $ref: '#/components/parameters/pagination-before'
      responses:
        '200':
          description: Successfully list fee configuration history
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope-list'
                - properties:
                    type:
                      example: array
                    data:
                      items:
                        $ref: '#/components/schemas/StandardFeeConfiguration'
components:
  schemas:
    Envelope:
      type: object
      properties:
        id:
          description: the object id, also found in the data object
          type: string
          format: uuid
          example: prefix_xyz (same as id of data object)
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the attributes for the object
          type: object
        page_info:
          description: information for cursor style pagination, is null for single records
          type: null
    Envelope-list:
      type: object
      properties:
        id:
          description: the object id
          type: number
          example: 1
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the list of objects
          type: array
        page_info:
          description: information for cursor style pagination
          $ref: '#/components/schemas/PageInfo'
    StandardFeeConfiguration:
      type: object
      properties:
        id:
          description: unique identifier for the fee configuration
          type: string
          example: sfc_abc123
        account_id:
          description: the sub account this configuration applies to
          type: string
          format: uuid
          example: acc_xyz
        platform_account_id:
          description: the platform account that created this configuration
          type:
          - string
          - 'null'
          format: uuid
          example: acc_yyy
        fee_type:
          description: 'the type of fee this configuration applies to:

            - `processing_ecomm` — card-not-present (online) payments

            - `processing_card_present` — card-present (terminal) payments

            - `processing_ach` — ACH payments

            - `processing_ach_expedited` — expedited ACH payments

            - `visa_brand_ecomm` — Visa online payments

            - `visa_brand_card_present` — Visa terminal payments

            - `mastercard_brand_ecomm` — Mastercard online payments

            - `mastercard_brand_card_present` — Mastercard terminal payments

            - `amex_brand_ecomm` — Amex online payments

            - `amex_brand_card_present` — Amex terminal payments

            - `discover_brand_ecomm` — Discover online payments

            - `discover_brand_card_present` — Discover terminal payments

            - `platform` — platform service fee applied to all payments

            '
          type: string
          enum:
          - processing_ecomm
          - processing_card_present
          - processing_ach
          - processing_ach_expedited
          - visa_brand_ecomm
          - visa_brand_card_present
          - mastercard_brand_ecomm
          - mastercard_brand_card_present
          - amex_brand_ecomm
          - amex_brand_card_present
          - discover_brand_ecomm
          - discover_brand_card_present
          - platform
          example: processing_ecomm
        variable_rate:
          description: percentage rate applied to the payment amount. `2.75` = 2.75%
          type: number
          example: 2.75
        transaction_fee_cents:
          description: flat fee in cents added to each transaction
          type: integer
          example: 25
        transaction_fee_currency:
          description: currency of the transaction fee
          type: string
          enum:
          - usd
          example: usd
        fee_cap_cents:
          description: maximum fee amount in cents; if the calculated fee exceeds this, the cap is used instead
          type:
          - integer
          - 'null'
          example: 1000
        effective_start:
          description: when this configuration takes effect (UTC)
          type: string
          format: date-time
          example: '2026-02-25T00:00:00Z'
        effective_end:
          description: when this configuration expires (UTC); `null` means it stays active indefinitely
          type:
          - string
          - 'null'
          format: date-time
          example: null
    PageInfo:
      type: object
      properties:
        end_cursor:
          description: the encoded id of the last record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDE5OjUyOjM3LjEwNDE3MzAwMCIsIjY4MDliYTU5LTYxYjctNDg3MS05YWFiLWE2Y2MyNmY3M2M1ZCJd
        has_next:
          description: true if the collection contains records following the current list
          type: boolean
          default: false
        has_previous:
          description: true if the collection contains records ahead of the current list
          type: boolean
          default: false
        start_cursor:
          description: the encoded id of the first record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDIwOjAxOjU4LjEyMDIzMjAwMCIsIjU5ZTFjNGI1LWFlOWQtNDIyZC04MTVkLWNjNzQ5NzdlYmFjYSJd
  parameters:
    id-path:
      in: path
      name: id
      schema:
        type: string
        format: uuid
      required: true
    pagination-after:
      in: query
      name: after_cursor
      description: token to fetch the next page of a list
      schema:
        type: string
    pagination-before:
      in: query
      name: before_cursor
      description: token to fetch the previous page of a list
      schema:
        type: string
    authorization-header:
      in: header
      name: Authorization
      schema:
        type: string
      required: true
      example: Bearer {access_token}
      description: the `access_token` value returned from the JustiFi `oauth/token` endpoint (be sure to append `Bearer` before the token)
    idempotency-key-header:
      in: header
      name: Idempotency-Key
      schema:
        type: string
        format: uuid
      required: true
      example: my-request-123abc
      description: a string to identify your request (we recommend using a generated uuid, but you may use any unique string) see [Idempotent Requests](https://docs.justifi.tech/api-spec#section/Idempotent-Requests)
    pagination-limit:
      in: query
      name: limit
      description: the number of resources to retrieve
      schema:
        type: integer
x-tagGroups:
- name: Authorization
  tags:
  - API Credentials
  - Web Component Tokens
- name: For Platforms
  tags:
  - Sub Accounts
  - Platform Wallet Accounts
  - Onboarding via Component
  - Hosted Onboarding
  - Onboarding via API
  - Fee Configurations
  - Proceeds
  - Reports
- name: Payment Resources
  tags:
  - Payments
  - Payment Methods
  - Tokenize via Component
  - Payment Method Groups
  - Refunds
  - Disputes
  - Payouts
  - Payout Holds
  - Balance Transactions
  - Ach Return Fees
  - Payment Method Migration
- name: Checkout Resources
  tags:
  - Checkouts
  - Checkout via Component
  - Checkout via API
- name: Insurance Resources
  tags:
  - Bind Insurance
- name: Entity Resources
  tags:
  - Business
  - Identity
  - Address
  - Document
  - Bank Account
  - Terms and Conditions
  - Provisioning
- name: Card Present Resources
  tags:
  - Terminals
  - Terminals Orders
- name: Libraries
  tags:
  - JustiFi Web Components
  - JustiFi SDK
- name: Event Publishing
  tags:
  - Events
  - Webhook Delivery