API Reference
ProcessingRule

Processing Rule Schema

Dynamic pricing and funding rules based on transaction conditions


The Processing Rule schema defines the structure and properties of processing rule objects in the Payload API. Processing rules enable dynamic pricing and funding configuration based on transaction characteristics such as amount, payment method type, card brand, and more. Rules are evaluated by priority, with the highest priority rule applied when multiple rules match a transaction.

Processing Rule Object Properties

Complete reference for all properties available in the Processing Rule schema

attrs
object
Custom attributes for extending the resource with additional key-value pairs. Maximum length is 255 characters when serialized.
conditions
object
Conditions that determine when this rule applies to a transaction. Multiple conditions can be combined, and all specified conditions must match for the rule to be applied. Use conditions to create targeted pricing rules, funding delays, or processing behavior based on transaction characteristics.
amount
object
Match transactions by amount. Supports equality, greater than, less than, and range operators. Useful for tiered pricing or setting different fees for high-value transactions.
eq
number (double)
No description
ge
number (double)
No description
gt
number (double)
No description
le
number (double)
No description
lt
number (double)
No description
card_brand
object
Match transactions by card brand (Visa, Mastercard, Amex, Discover, etc.). Use to apply brand-specific pricing or block/allow specific card brands.
eq
enum[string]
No description
Values: visa, mastercard, american_express, discover
ne
enum[string]
No description
Values: visa, mastercard, american_express, discover
card_type
object
Match transactions by card type (credit, debit, or prepaid). Use to apply different pricing for different card types or exclude certain card types from processing.
eq
enum[string]
No description
Values: credit, debit, prepaid
ne
enum[string]
No description
Values: credit, debit, prepaid
currency
object
Match transactions by currency (e.g., USD, CAD). Use to apply currency-specific pricing or processing rules.
eq
enum[string]
No description
Values: USD, CAD
funding_timing
object
Match transactions by funding timing (immediate or delayed). Use to differentiate pricing between instant and standard funding options.
eq
enum[string]
No description
Values: standard, instant, rapid
ne
enum[string]
No description
Values: standard, instant, rapid
payment_method_type
object
Match transactions by payment method type. Supports "bank_account", "card", or "synthetic". Use to apply different pricing or settings based on how the customer pays.
eq
enum[string]
No description
Values: bank_account, card, synthetic
source
object
Match transactions by their source type (e.g., web, mobile, API). Use to apply different rules based on where the transaction originated.
eq
enum[string]
No description
Values: api, keyed, googlepay, applepay, check, plaid
transaction_type
object
Match by transaction type: "payment" (incoming funds) or "payout" (outgoing funds). Use to apply different rules for money flowing in versus out.
eq
enum[string]
No description
Values: payment, payout
created_at
string (date-time)Read-only
Timestamp when the resource was created. Automatically set by the system and immutable.
funding
object
Funding configuration to apply when this rule matches a transaction. Defines when funds are made available to the processing account after transaction capture. These settings override default processing settings for matching transactions.
delay
object
Funding delay configuration for this rule. Controls the timing of fund disbursement for matching transactions.
default
integer (int64)
Default funding delay in days when this rule matches. Specifies how many days after transaction capture before funds are disbursed to the processing account.
id
stringRead-only
Unique identifier for the resource. Automatically generated upon creation and cannot be modified. (ID prefix: prule)
Pattern: ^prule_[A-Za-z0-9]+$
modified_at
string (date-time)Read-only
Timestamp when the resource was last modified. Automatically updated whenever any field changes.
object
enum[string]Read-only
String representing the object type for this resource.
Values: processing_rule
pricing
object
Pricing configuration to apply when this rule matches a transaction. Includes percentage-based rates, fixed costs, fee caps, and convenience fee allocation. These settings override default processing settings for matching transactions.
conv_fee_alloc
number (double)
Convenience fee allocation percentage. Determines what portion of the processing fee is passed to the customer as a convenience fee. Cannot be set if card_brand is a condition.
trans_cost
object
Transaction cost configuration for this rule. Defines the fixed fee charged per transaction regardless of amount.
default
number (double)
Default fixed cost per transaction when this rule matches. Expressed in the transaction currency (e.g., 0.30 for $0.30 per transaction).
trans_fee_cap
number (double)
Maximum fee cap for transactions matching this rule. Limits the total fee charged on high-value transactions. Must be non-zero if set.
trans_rate
object
Transaction rate configuration for this rule. Defines the percentage-based fee charged on transaction amounts.
default
number (double)
Default transaction percentage rate to apply when this rule matches. Expressed as a percentage (e.g., .029 for 2.9%).
priority
integer (int64)
Priority value determining rule evaluation order. Rules are evaluated from highest to lowest priority (100 to 0). When multiple rules match a transaction, the highest priority rule is applied. Must be between 0 and 100.
scope
object
The scope defining where this processing rule applies. Combines a scope type (such as profile or account) with the specific object ID to determine which transactions this rule affects.
object_id
string
The ID of the object (account or profile) to which this rule is scoped. Must correspond to the entity specified by the scope type. (ID prefix: acct)
Pattern: ^acct_[A-Za-z0-9]+$
type
enum[string]
The scope type defining where this rule applies. Determines the level at which the processing rule takes effect (e.g., profile-level or account-level).
Values: profile, account