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

# Other Transactions Flow

> Control how non-card payments are routed, retried, and rejected.

## Action: Decline

This action allows transactions to be declined before they are routed to one of
the connections.

## Action: Route to connection

This action allows transactions to be routed to a subset of connections. A
transaction is processed sequentially with the defined outcome connections
until it is successful. If a rule is matched and there are no active connections,
or all connections fail to process the request, the transaction is declined.

## Conditions

The following conditions can be added:

* Amount: This enables filtering based on the amount for the transaction. Each
  rule defines a single currency for which it applies. A minimum
  amount, maximum amount, or a range for the amount can be specified.

* Anti fraud decision: The enables filtering based on the decision made by the
  anti-fraud service.

* Browser language: This enables filtering based on a buyer's browser language.

* Country: This enables filtering based on the customer's country as an
  inclusive or exclusive list of countries.

* Currency: This enables filtering based on the transaction currency as an
  inclusive or exclusive list of currencies.

* Gift card BIN range: This enables filtering on up to the first nine digits of a gift
  card, for example: `4242-4545` or `123456789-123456789`.

* Has gift cards: This enables filtering based on whether gift cards were used
  in the transaction.

* Metadata: This enables filtering based on key/value strings from an object
  passed to the API. This currently only supports matching/not matching
  string values. For example, `{"foo": "bar"}` could be passed and a
  condition created based on the value of the `foo` key.

* Metadata (Numeric): This enables filtering based on key/value numeric strings
  from an object passed to the API. It only supports numeric comparisons like
  `less than`, `equal to`, `greater than`, `greater than or equal to` and
  `less than or equal to`.
  For example, `{"foo": "200.1"}` could be passed and a condition created based
  on the numeric value `200.1` of the `foo` key.

* Payment method: This enables filtering based on the payment method used for
  the transaction.

* Product categories: This enables filtering based on the product categories
  of cart items.

* Product types: This enables filtering based on the product types of cart
  items.

* SKUs: This enables filtering based on the SKUs of cart items.

* Split routing: This enables filtering based on set probability (percentage),
  for example, setting `30` would evaluate to true for approximately 30% of requests.

<Warning>
  **Rule Validation**

  * The payment method condition is required
  * You may only have one amount or currency condition per rule
  * You may only have one browser language condition per rule
  * You may only have one country condition per rule
  * You may only have one currency condition per rule
  * You may only have one gift card BIN range condition per rule
  * You may only have one has gift cards condition per rule
  * You may only have one payment method condition per rule
  * You may only have one product categories condition per rule
  * You may only have one product types condition per rule
  * You may only have one SKUs condition per rule
  * You may only have one Split Routing condition per rule
</Warning>
