# List dynamic pricing rules

Returns the payin pricing rules configured for your business whose fee bearer is dynamic. These are the rules you may declare a share of, with [Create a pricing split](#tag/pricing_split).
Use the rule's `pricing_type` to decide what to declare: `bps` on a `percentage` rule, `fixed_amount` on a `fixed` rule.

Endpoint: GET /prices/dynamic
Version: 1.0.0
Security: JWT

## Security:

  - `JWT` (unknown)
    http bearer JWT

## Query parameters:

  - `per_page` (integer)
    Number of resources per page. Should be between 1 and 100.

  - `page` (integer)
    Page number for pagination. Starts from 1. Get the next page number from the `next` field in the response.

## Response 200:

  - `200` (unknown)
    List of dynamic pricing rules available to your business

## Response 200 fields (application/json):

  - `data` (array)

  - `data.id` (string)
    The unique identifier of the pricing rule. Pass this value as `price_id` when you create a pricing split.
    Example: price_5JU9yv0lGSUP

  - `data.fee_type` (string)
    The fee this rule prices. Only `transaction_fees` rules can be declared against, so only they are listed.
    Enum: "transaction_fees"

  - `data.payment_type` (string)
    The direction this rule prices. Only `payin` rules can be declared against, so only they are listed.
    Enum: "payin"

  - `data.pricing_type` (string)
    How the fee is computed. A `percentage` rule charges `bps` of the amount. A `fixed` rule charges `fees_amount` in `fees_currency`. Declare `bps` against a `percentage` rule and `fixed_amount` against a `fixed` rule.
    Enum: "percentage", "fixed"

  - `data.payment_rail` (string | null)
    The payment rail this rule applies to. `null` when the rule applies to every rail.
    Example: swift

  - `data.from_currency` (string | null)
    The currency the payment is collected in, in ISO 4217 format. The rule applies only to payments in this currency. `null` when the rule applies to every currency.
    Example: USD

  - `data.bps` (integer | null)
    The full fee in basis points, where 100 bps is 1%. Present on `percentage` rules and `null` on `fixed` rules. Your declared `bps` cannot exceed this value.
    Example: 300

  - `data.fees_amount` (integer | null)
    The full fee in minor units of `fees_currency`. Present on `fixed` rules and `null` on `percentage` rules. Your declared `fixed_amount` cannot exceed this value.
    Example: 500

  - `data.fees_currency` (string | null)
    The currency of `fees_amount`. Present on `fixed` rules and `null` on `percentage` rules.
    Example: USD

  - `data.min_fee` (integer | null)
    The floor the rule applies to the computed fee, in minor units of `min_max_fee_currency`. `null` when the rule has no floor.
    Example: 100

  - `data.max_fee` (integer | null)
    The cap the rule applies to the computed fee, in minor units of `min_max_fee_currency`. `null` when the rule has no cap.
    Example: 2000

  - `data.min_max_fee_currency` (string | null)
    The currency of `min_fee` and `max_fee`. `null` when the rule has neither.
    Example: USD

  - `data.display_label` (string | null)
    The label shown to your customer at checkout for the fee this rule charges.
    Example: Processing fee

  - `data.effective_from` (string)
    The date from which this version of the rule applies, in IST.
    Example: 2026-07-01

  - `data.payment_method` (object)
    The payment method this rule applies to. A split declared against this rule prices only this payment method.

  - `data.payment_method.type` (string | null)
    The payment method this rule applies to. One of `bank_transfer`, `pay_via_bank` or `card`.
    Example: bank_transfer

  - `data.payment_method.subtype` (string | null)
    The payment method subtype this rule applies to, for example `local_transfer` or `swift_transfer`. `null` when the rule applies to every subtype of `type`.
    Example: swift_transfer

  - `page_meta` (object)

  - `page_meta.current` (integer)
    The current page number.
    Example: 2

  - `page_meta.previous` (integer | null)
    The previous page number.
    Example: 1

  - `page_meta.next` (integer | null)
    The next page number.
    Example: 3

  - `page_meta.per_page` (integer)
    The number of items per page.
    Example: 20

  - `page_meta.pages` (integer)
    The total number of pages.
    Example: 10

  - `page_meta.count` (integer)
    The total number of items.
    Example: 200

## Response 400:

  - `400` (unknown)
    Bad Request — invalid pagination parameters

## Response 400 fields (application/json):

  - `error` (string)
    Enum: "Bad Request"

  - `message` (string)
    Error message.
    Example: per_page must be an integer

## Response 401:

  - `401` (unknown)
    Unauthorized — invalid or missing authentication token

## Response 401 fields (application/json):

  - `error` (string)
    Example: Unauthorized

  - `message` (string)
    Example: Invalid or missing authentication token

