---
title: "Create Partner Fee"
method: POST
path: "/v1/accounts/{account_id}/partner-fees"
tags: ["Pricing"]
---

# Create Partner Fee

`POST /v1/accounts/{account_id}/partner-fees`

Create a partner fee charged to your customers, under the given account.

**Scope:**

- Create on the **main account** to set a default fee that applies to all sub-accounts.
- Create on a **sub-account** to set a fee that applies only to that sub-account.

**Fee matching:** when a transaction occurs, a sub-account fee takes priority over the main-account default, and the most targeted fee wins.

**external_id:** required valid UUID in the request body, unique to this create request. Reusing an existing value returns a conflict. If a previous create timed out, look it up via the list endpoint with the `external_id` query parameter instead of replaying the create request.

## Path parameters

- `account_id` string, required

## Request body

- PartnerFeeCreateRequest
  - `fee` union, required — Fee definition of a partner fee, discriminated by `fee_type`.
    - object
      - `currency` 'USD', nullable — Fiat currency to scope this deposit fee. Omit in requests or expect `null` in responses to apply to all fiat deposit currencies.
      - `payment_rail` 'US_ACH' | 'US_FEDWIRE' | 'US_RTP' | 'SWIFT', nullable — Fiat payment rail to scope this fee. Omit in requests or expect `null` in responses to apply to all fiat deposit rails.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the currency unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'FIAT_DEPOSIT', required
    - object
      - `currency` 'USD', nullable — Fiat currency to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all fiat withdrawal currencies.
      - `payment_rail` 'US_ACH' | 'US_FEDWIRE' | 'US_RTP' | 'SWIFT', nullable — Fiat payment rail to scope this fee. Omit in requests or expect `null` in responses to apply to all fiat withdrawal rails.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the currency unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'FIAT_WITHDRAWAL', required
    - object
      - `token` 'USDC' | 'USDT' | 'PYUSD' | 'RLUSD' | 'USDG' | 'USDP' | '1USD' | 'AUSD' | 'DAI' | 'EURC' | 'MXNB' | 'MEXAS' | 'GYEN' | 'BRL1' | 'BRLA' | 'COPM' | 'USTB' | 'BTC', nullable — Crypto token to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all crypto tokens.
      - `network` 'AVALANCHE' | 'ETHEREUM' | 'POLYGON' | 'BNBCHAIN' | 'BASE' | 'ARBITRUM' | 'SOLANA' | 'TRON' | 'ONE_MONEY' | 'BITCOIN', nullable — Blockchain network to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all supported crypto networks for the selected token.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the token unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'CRYPTO_WITHDRAWAL', required
    - object — Conversion fee definition.
      - `from_asset` string, nullable — Source asset of the conversion. Omit or use `null` to match any source asset. Omitting both `from_asset` and `to_asset` applies to all pairs.
      - `to_asset` string, nullable — Target asset of the conversion. Omit or use `null` to match any target asset. Omitting both `from_asset` and `to_asset` applies to all pairs.
      - `rate` string, required — Rate for the `from_asset` -> `to_asset` direction, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Applies to that direction for every matched pair when either asset is omitted. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `reverse_rate` string — Rate for the opposite `to_asset` -> `from_asset` direction; defaults to 0 (no fee). Must be >= 0 and < 1, with at most 5 decimal places.
      - `from_asset_fixed` string — Fixed fee in `from_asset` units; defaults to 0. At most 5 decimal places. Must be 0 when `from_asset` is omitted.
      - `to_asset_fixed` string — Fixed fee in `to_asset` units; defaults to 0. At most 5 decimal places. Must be 0 when `to_asset` is omitted.
      - `fee_type` 'CONVERSION', required
  - `external_id` string, required — Partner-supplied `external_id` request value (UUID) used to make a create request idempotent. Validated at the API boundary and stored on the resource as an external identifier.

## Response `201`

Partner fee created

- PartnerFeeResponse
  - `fee_id` string, required — Partner fee ID exposed by OpenAPI.
  - `account_id` string, required
  - `fee` union, required — Fee definition of a partner fee, discriminated by `fee_type`.
    - object
      - `currency` 'USD', nullable — Fiat currency to scope this deposit fee. Omit in requests or expect `null` in responses to apply to all fiat deposit currencies.
      - `payment_rail` 'US_ACH' | 'US_FEDWIRE' | 'US_RTP' | 'SWIFT', nullable — Fiat payment rail to scope this fee. Omit in requests or expect `null` in responses to apply to all fiat deposit rails.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the currency unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'FIAT_DEPOSIT', required
    - object
      - `currency` 'USD', nullable — Fiat currency to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all fiat withdrawal currencies.
      - `payment_rail` 'US_ACH' | 'US_FEDWIRE' | 'US_RTP' | 'SWIFT', nullable — Fiat payment rail to scope this fee. Omit in requests or expect `null` in responses to apply to all fiat withdrawal rails.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the currency unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'FIAT_WITHDRAWAL', required
    - object
      - `token` 'USDC' | 'USDT' | 'PYUSD' | 'RLUSD' | 'USDG' | 'USDP' | '1USD' | 'AUSD' | 'DAI' | 'EURC' | 'MXNB' | 'MEXAS' | 'GYEN' | 'BRL1' | 'BRLA' | 'COPM' | 'USTB' | 'BTC', nullable — Crypto token to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all crypto tokens.
      - `network` 'AVALANCHE' | 'ETHEREUM' | 'POLYGON' | 'BNBCHAIN' | 'BASE' | 'ARBITRUM' | 'SOLANA' | 'TRON' | 'ONE_MONEY' | 'BITCOIN', nullable — Blockchain network to scope this withdrawal fee. Omit in requests or expect `null` in responses to apply to all supported crypto networks for the selected token.
      - `rate` string, required — Percentage rate as a decimal, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `fixed` string — Fixed fee in the token unit; defaults to 0. At most 5 decimal places.
      - `fee_type` 'CRYPTO_WITHDRAWAL', required
    - object — Conversion fee definition.
      - `from_asset` string, nullable — Source asset of the conversion. Omit or use `null` to match any source asset. Omitting both `from_asset` and `to_asset` applies to all pairs.
      - `to_asset` string, nullable — Target asset of the conversion. Omit or use `null` to match any target asset. Omitting both `from_asset` and `to_asset` applies to all pairs.
      - `rate` string, required — Rate for the `from_asset` -> `to_asset` direction, e.g. 0.001 = 0.1%. Must be >= 0 and < 1, with at most 5 decimal places. Applies to that direction for every matched pair when either asset is omitted. Computed fees are rounded up (away from zero) at the asset scale, so a configured fee never rounds to zero.
      - `reverse_rate` string — Rate for the opposite `to_asset` -> `from_asset` direction; defaults to 0 (no fee). Must be >= 0 and < 1, with at most 5 decimal places.
      - `from_asset_fixed` string — Fixed fee in `from_asset` units; defaults to 0. At most 5 decimal places. Must be 0 when `from_asset` is omitted.
      - `to_asset_fixed` string — Fixed fee in `to_asset` units; defaults to 0. At most 5 decimal places. Must be 0 when `to_asset` is omitted.
      - `fee_type` 'CONVERSION', required
  - `created_at` string, required — Fee creation timestamp (ISO 8601)
  - `modified_at` string, required — Last modification timestamp (ISO 8601)

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `405` — Method Not Allowed
- `409` — A partner fee with the same asset scope or external_id already exists
- `422` — Unprocessable Entity - Invalid enum value (e.g., unsupported network or asset name)
- `500` — Internal Server Error

---

[API](https://skmtc.net/1money/apis/1money-openapi.md) · [All operations](https://skmtc.net/1money/apis/1money-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/1money/1money-openapi/revisions/aa2718d28cb5/schema)
