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

# Create fee override

> Creates an account-level override for one fee type. An account has at most one override per fee type; creating a second returns a conflict. Project defaults cannot be created - every project already has one row per fee type.



## OpenAPI

````yaml /api-reference/openapi.json post /fees/
openapi: 3.1.0
info:
  title: Reap API
  version: 1.0.0
  description: Reap platform API
servers:
  - url: https://sg.sandbox.api.reap.global
    description: Singapore sandbox
  - url: https://sg.prod.api.reap.global
    description: Singapore production
  - url: https://mx.sandbox.api.reap.global
    description: Mexico sandbox
  - url: https://mx.prod.api.reap.global
    description: Mexico production
  - url: https://sandbox.api.reap.global
    description: Singapore sandbox (alias)
  - url: https://prod.api.reap.global
    description: Singapore production (alias)
security:
  - bearerAuth: []
tags:
  - name: Accounts
  - name: Activities
  - name: Card Designs
  - name: Card Shipments
  - name: Card Transactions
  - name: Cards
  - name: Companies
  - name: Crypto Deposits
  - name: Crypto Withdrawals
  - name: Disputes
  - name: Fees
  - name: Fiat Deposits
  - name: Fraud Alerts
  - name: Policies
  - name: Simulation
  - name: Users
  - name: Virtual Asset Postings
  - name: Virtual Assets
  - name: Webhooks
  - name: Agentic
paths:
  /fees/:
    post:
      tags:
        - Fees
      summary: Create fee override
      description: >-
        Creates an account-level override for one fee type. An account has at
        most one override per fee type; creating a second returns a conflict.
        Project defaults cannot be created - every project already has one row
        per fee type.
      operationId: create_fees
      parameters:
        - name: Reap-Version
          in: header
          required: true
          schema:
            type: string
            enum:
              - '2025-02-14'
            description: API version (YYYY-MM-DD)
            example: '2025-02-14'
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 255
            description: >-
              Unique key for safely retrying this request. Up to 255 characters;
              we recommend a UUIDv4. The first request executes and its response
              is cached; subsequent requests with the same key replay the cached
              response (24h retention).
      requestBody:
        description: >-
          Create an account-level fee override. The value `unit` must match the
          fee type.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - FX_MARKUP
                    - ATM_DOMESTIC_VARIABLE
                    - ATM_DOMESTIC_FIXED
                    - ATM_CROSS_BORDER_VARIABLE
                    - ATM_CROSS_BORDER_FIXED
                  description: Which cardholder fee to override.
                  example: FX_MARKUP
                scope:
                  type: object
                  properties:
                    type:
                      type: string
                      const: ACCOUNT
                    id:
                      description: The account to override for.
                      type: string
                      format: uuid
                  required:
                    - type
                    - id
                  description: The account the override attaches to.
                value:
                  oneOf:
                    - $ref: '#/components/schemas/FeeBpsValueInput'
                      title: FeeBpsValueInput
                    - $ref: '#/components/schemas/FeeAmountValueInput'
                      title: FeeAmountValueInput
                  description: >-
                    The fee value. `unit` must match the fee type: `BPS` for a
                    rate-based type, `AMOUNT` for a fixed one.
              required:
                - type
                - scope
                - value
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - FX_MARKUP
                    - ATM_DOMESTIC_VARIABLE
                    - ATM_DOMESTIC_FIXED
                    - ATM_CROSS_BORDER_VARIABLE
                    - ATM_CROSS_BORDER_FIXED
                  description: Which cardholder fee to override.
                  example: FX_MARKUP
                scope:
                  type: object
                  properties:
                    type:
                      type: string
                      const: ACCOUNT
                    id:
                      description: The account to override for.
                      type: string
                      format: uuid
                  required:
                    - type
                    - id
                  description: The account the override attaches to.
                value:
                  oneOf:
                    - $ref: '#/components/schemas/FeeBpsValueInput'
                      title: FeeBpsValueInput
                    - $ref: '#/components/schemas/FeeAmountValueInput'
                      title: FeeAmountValueInput
                  description: >-
                    The fee value. `unit` must match the fee type: `BPS` for a
                    rate-based type, `AMOUNT` for a fixed one.
              required:
                - type
                - scope
                - value
          multipart/form-data:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - FX_MARKUP
                    - ATM_DOMESTIC_VARIABLE
                    - ATM_DOMESTIC_FIXED
                    - ATM_CROSS_BORDER_VARIABLE
                    - ATM_CROSS_BORDER_FIXED
                  description: Which cardholder fee to override.
                  example: FX_MARKUP
                scope:
                  type: object
                  properties:
                    type:
                      type: string
                      const: ACCOUNT
                    id:
                      description: The account to override for.
                      type: string
                      format: uuid
                  required:
                    - type
                    - id
                  description: The account the override attaches to.
                value:
                  oneOf:
                    - $ref: '#/components/schemas/FeeBpsValueInput'
                      title: FeeBpsValueInput
                    - $ref: '#/components/schemas/FeeAmountValueInput'
                      title: FeeAmountValueInput
                  description: >-
                    The fee value. `unit` must match the fee type: `BPS` for a
                    rate-based type, `AMOUNT` for a fixed one.
              required:
                - type
                - scope
                - value
      responses:
        '200':
          description: A cardholder fee row.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fee'
        '400':
          description: Response for status 400
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: FEE_SCOPE_NOT_FOUND
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: FeeScopeNotFoundError
                    description: The account the fee attaches to does not exist
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: INVALID_FEE_VALUE
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: InvalidFeeValueError
                    description: The fee value is out of range for this fee type
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: FEE_VALUE_UNIT_MISMATCH
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: FeeValueUnitMismatchError
                    description: >-
                      The value key does not match the fee type: pass `bps` for
                      rate-based fee types and `amount` for fixed fee types
        '409':
          description: A fee of this type already exists at this scope
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        const: DUPLICATE_FEE
                      message:
                        type: string
                      detail:
                        anyOf:
                          - type: object
                            additionalProperties: {}
                          - type: 'null'
                    required:
                      - code
                      - message
                      - detail
                required:
                  - error
                title: DuplicateFeeError
components:
  schemas:
    FeeBpsValueInput:
      type: object
      properties:
        unit:
          type: string
          const: BPS
        bps:
          type: integer
          minimum: 0
          maximum: 10000
          examples:
            - 51
            - 150
          description: Rate in basis points of the transaction bill amount (100 bps = 1%).
      required:
        - unit
        - bps
    FeeAmountValueInput:
      type: object
      properties:
        unit:
          type: string
          const: AMOUNT
        amount:
          type: number
          minimum: 0
          examples:
            - 100.5
            - 0
            - 1234.99
          description: Fixed fee per transaction, in the project's billing currency.
      required:
        - unit
        - amount
    Fee:
      type: object
      properties:
        id:
          description: Fee ID.
          type: string
          format: uuid
        type:
          type: string
          enum:
            - FX_MARKUP
            - ATM_DOMESTIC_VARIABLE
            - ATM_DOMESTIC_FIXED
            - ATM_CROSS_BORDER_VARIABLE
            - ATM_CROSS_BORDER_FIXED
          description: Which cardholder fee this row sets.
          example: FX_MARKUP
        value:
          oneOf:
            - $ref: '#/components/schemas/FeeBpsValue'
              title: FeeBpsValue
            - $ref: '#/components/schemas/FeeAmountValue'
              title: FeeAmountValue
          description: The fee value, denominated as `unit` says.
        scope:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  const: PROJECT
              required:
                - type
              title: Project
            - type: object
              properties:
                type:
                  type: string
                  const: ACCOUNT
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
              title: Account
          description: >-
            Where the fee attaches. PROJECT rows are the default rate card for
            your program; an ACCOUNT row overrides one fee type for one account.
        version:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: >-
            Incremented on every change. Transaction events record the version
            that priced them.
        createdAt:
          type: string
          description: ISO 8601 creation timestamp.
        updatedAt:
          type: string
          description: ISO 8601 last-update timestamp.
      required:
        - id
        - type
        - value
        - scope
        - version
        - createdAt
        - updatedAt
    FeeBpsValue:
      type: object
      properties:
        unit:
          type: string
          const: BPS
        bps:
          type: integer
          minimum: 0
          maximum: 10000
          examples:
            - 51
            - 150
          description: Rate in basis points of the transaction bill amount (100 bps = 1%).
      required:
        - unit
        - bps
    FeeAmountValue:
      type: object
      properties:
        unit:
          type: string
          const: AMOUNT
        amount:
          type: number
          minimum: 0
          examples:
            - 100.5
            - 0
            - 1234.99
          description: Fixed fee per transaction, in the project's billing currency.
        currency:
          type: string
          examples:
            - USD
            - HKD
            - EUR
          description: >-
            Currency of fixed fee amounts - the billing currency of the
            project's card program.
      required:
        - unit
        - amount
        - currency
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key as Bearer token

````