> ## Documentation Index
> Fetch the complete documentation index at: https://rain-sandbox-trial.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Rain-Managed

> How Rain validates a Rain-Managed authorization, places a hold, and settles or reverses it.

This page covers the authorization flow for Rain-Managed programs, where Rain decides each authorization internally. For the Partner-Managed equivalent, see [Partner-managed](/docs/authorization-partner-managed).

## Approving authorizations

When a cardholder initiates a purchase, our system checks several criteria to approve the transaction. This includes verifying card validity, checking the account balance, assessing spending limits, applying custom rules (such as merchant blocks), and evaluating fraud risk. If any of these checks fail, the transaction is declined. If the transaction is approved, we place a hold on the funds to ensure they are available for settlement. At this stage, no funds are transferred; the hold reserves the amount.

Once Rain responds to the network, Rain sends you a [`transaction.created`](/docs/transaction#transaction-created) webhook. If the transaction is declined, it will have a `status` of `declined`. You will need to persist this data for logging purposes.

```mermaid theme={null}
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
        'textColor': '#A6CFFF',
      'primaryColor': '#212933',
      'primaryTextColor': '#FFFFFF',
      'primaryBorderColor': '#A6CFFF',
      'secondaryColor': '#F73196',
      'noteBkgColor': '#F4F3FF',
      'noteBorderColor': '#F4F3FF',
      'noteTextColor': '#6938EF'
    },
    'sequence': {
      'actorFontWeight': 'bold'
    }
  }
}%% 

sequenceDiagram
    Merchant->>+Rain: Auth Request ($100)
    Rain->>+Rain's Ledger: Check Balance
    Rain's Ledger-->>-Rain: Sufficient Balance
    Rain->>+Rain's Ledger: Place Hold ($100)
    Note over Rain's Ledger: Total Hold ($100)
    Rain's Ledger-->>-Rain: Hold Placed
    Rain-->>-Merchant: Auth Approved
    Rain->>+You: `transaction.created` Webhook ($100)
    You-->>-Rain: Webhook Acknowledged
```

## Incremental authorizations

Some merchants, such as hotels and gas stations, may need to increase the initial authorization amount. This typically occurs when the final transaction amount is not known upfront. For example, hotels may add room service charges, or gas stations may adjust for the total fuel cost. Rain's system allows for incremental authorizations, enabling merchants to request additional funds beyond the original authorization. Each request for additional funds undergoes the same validation process as the initial authorization.

Rain notifies you with a [`transaction.created`](/docs/transaction#transaction-created) webhook followed by a [`transaction.updated`](/docs/transaction#transaction-updated) webhook with the new total amount (original amount + increment amount)

```mermaid theme={null}
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
	    'textColor': '#A6CFFF',
      'primaryColor': '#212933',
      'primaryTextColor': '#FFFFFF',
      'primaryBorderColor': '#A6CFFF',
      'secondaryColor': '#F73196',
      'noteBkgColor': '#F4F3FF',
      'noteBorderColor': '#F4F3FF',
      'noteTextColor': '#6938EF'
    },
	  'sequence': {
	    'actorFontWeight': 'bold'
	  }
  }
}%%

sequenceDiagram
    Merchant->>+Rain: Auth Request ($50)
    Rain->>+Rain's Ledger: Check Balance
    Rain's Ledger-->>-Rain: Sufficient Balance
    Rain->>+Rain's Ledger: Place Hold ($50)
    Note over Rain's Ledger: Total Hold ($50)
    Rain's Ledger-->>-Rain: Hold Placed
    Rain-->>-Merchant: Auth Approved
    Rain->>+You: `transaction.created` Webhook ($50)
    You-->>-Rain: Webhook Acknowledged
    Note over Merchant,You: Time passes
    Merchant->>+Rain: Increment Request (+$25)
    Rain->>+Rain's Ledger: Check Balance
    Rain's Ledger-->>-Rain: Sufficient Balance
    Rain->>+Rain's Ledger: Increment Hold ($25)
    Note over Rain's Ledger: Total Hold ($75)
    Rain's Ledger-->>-Rain: Hold Placed
    Rain-->>-Merchant: Increment Approved
    Rain->>+You: `transaction.updated` Webhook ($75)
    You-->>-Rain: Webhook Acknowledged
```

## Partial reversals

When a merchant needs to reverse part of an authorization amount, the merchant can submit a partial reversal. Rain records the reversed amount and releases the authorization hold upon receiving the partial reversal. This is common in situations such as gas stations, where the initial hold may exceed the final transaction amount.

To notify you of this change and the release of the authorization hold, Rain sends you a [`transaction.updated`](/docs/transaction#transaction-updated) webhook with a `status` of `reversed`.

If the transaction is partially reversed and the final settlement amount in the `transaction.completed` webhook does not reflect the partial reversal, the liability to fix this mismatch falls on the merchant/acquirer. To resolve, this is handled via Rain's [transaction issues and disputes](/docs/transaction-issues-disputes) process.

```mermaid theme={null}
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
	    'textColor': '#A6CFFF',
      'primaryColor': '#212933',
      'primaryTextColor': '#FFFFFF',
      'primaryBorderColor': '#A6CFFF',
      'secondaryColor': '#F73196',
      'noteBkgColor': '#F4F3FF',
      'noteBorderColor': '#F4F3FF',
      'noteTextColor': '#6938EF'
    },
	  'sequence': {
	    'actorFontWeight': 'bold'
	  }
  }
}%%

sequenceDiagram
    Merchant->>+Rain: Auth Request ($100)
    Rain->>+Rain's Ledger: Check Balance
    Rain's Ledger-->>-Rain: Sufficient Balance
    Rain->>+Rain's Ledger: Place Hold ($100)
    Note over Rain's Ledger: Total Hold ($100)
    Rain's Ledger-->>-Rain: Hold Placed
    Rain-->>-Merchant: Auth Approved
    Rain->>+You: `transaction.created` Webhook ($100)
    You-->>-Rain: Webhook Acknowledged
    Note over Merchant,You: Time passes
    Merchant->>+Rain: Partial Reversal (-$40)
    Note over Rain,Rain's Ledger: Reversed Portion Released (-$40)
    Note over Rain's Ledger: Total Hold ($60)
    Rain-->>-Merchant: Reversal Processed
    Rain->>+You: `transaction.updated` Webhook ($60)
    You-->>-Rain: Webhook Acknowledged
```

## Full reversals

A full reversal completely cancels an authorization, typically occurring when a transaction is canceled or times out. Rain's system marks the authorization as reversed. As with partial reversals, the hold is released upon reception of the reversal or automatically after [30 days](/docs/authorization-rain-managed#stale-authorization-closure).

Rain sends you a [`transaction.updated`](/docs/transaction#transaction-updated) webhook with a `status` of `reversed` and an `amount` of \$0, simultaneously releasing the authorization hold.

If the transaction is fully reversed and the final settlement amount in the `transaction.completed` webhook does not reflect the full reversal (that is, a final `amount` other than \$0), the liability to fix this mismatch falls on the merchant/acquirer. To resolve, this is handled via Rain's [transaction issues and disputes](/docs/transaction-issues-disputes) process.

```mermaid theme={null}
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
	    'textColor': '#A6CFFF',
      'primaryColor': '#212933',
      'primaryTextColor': '#FFFFFF',
      'primaryBorderColor': '#A6CFFF',
      'secondaryColor': '#F73196',
      'noteBkgColor': '#F4F3FF',
      'noteBorderColor': '#F4F3FF',
      'noteTextColor': '#6938EF'
    },
	  'sequence': {
	    'actorFontWeight': 'bold'
	  }
  }
}%%

sequenceDiagram
    Merchant->>+Rain: Auth Request ($100)
    Rain->>+Rain's Ledger: Check Balance
    Rain's Ledger-->>-Rain: Sufficient Balance
    Rain->>+Rain's Ledger: Place Hold ($100)
    Note over Rain's Ledger: Total Hold ($100)
    Rain's Ledger-->>-Rain: Hold Placed
    Rain-->>-Merchant: Auth Approved
    Rain->>+You: `transaction.created` Webhook ($100)
    You-->>-Rain: Webhook Acknowledged
    Note over Merchant,You: Time passes
    Merchant->>+Rain: Full Reversal (-$100)
    Note over Rain,Rain's Ledger: Hold Released
    Note over Rain's Ledger: No Remaining Hold
    Rain-->>-Merchant: Reversal Processed
    Rain->>+You: `transaction.updated` Webhook ($0)
    You-->>-Rain: Webhook Acknowledged
```

## Partial authorizations

<Warning>
  **Currently not supported:**

  Partial authorizations are not currently supported. When a cardholder has insufficient funds for the full requested amount, the transaction is declined.
</Warning>

Some merchants may request partial authorizations for the available balance when a cardholder has insufficient funds. This would allow a transaction to proceed with a reduced amount, which is common in scenarios such as pay-at-pump gas stations or retail settings.

Rain does not currently support partial authorizations. If the cardholder's balance is insufficient for the full requested amount, the authorization is declined. You will receive a [`transaction.created`](/docs/transaction#transaction-created) webhook with a `status` of `declined`.

## Refund authorizations

Occasionally, merchants send an authorization before posting a refund to a card. This authorization appears similar to a standard authorization but with a negative amount. The key difference is that the user’s ledger is not credited until the refund has been settled.

You will receive a [`transaction.created`](/docs/transaction#transaction-created) webhook with a negative `amount` for the refund.

```mermaid theme={null}
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
	    'textColor': '#A6CFFF',
      'primaryColor': '#212933',
      'primaryTextColor': '#FFFFFF',
      'primaryBorderColor': '#A6CFFF',
      'secondaryColor': '#F73196',
      'noteBkgColor': '#F4F3FF',
      'noteBorderColor': '#F4F3FF',
      'noteTextColor': '#6938EF'
    },
	  'sequence': {
	    'actorFontWeight': 'bold'
	  }
  }
}%%

sequenceDiagram
    Merchant->>+Rain: Auth Request (-$100)
    Note over Rain,Rain's Ledger: No Credit Hold
    Rain-->>-Merchant: Auth Approved
    Rain->>+You: `transaction.created` Webhook (-$100)
    You-->>-Rain: Webhook Acknowledged
```

## Stale authorization closure

When you make a purchase with a Rain card, the merchant places a temporary hold on your funds called an authorization. In most cases, the merchant settles (finalizes) this charge within a few days, and the hold is released automatically.

Sometimes a merchant never sends the final settlement. When this happens, the authorization remains in a pending state indefinitely. To keep your balances accurate, Rain automatically closes these stale authorizations on a set schedule:

* **Standard transactions** (under \$1,000): Closed after **14 days** with no settlement
* **Travel and rental holds** (cruise, lodging, and vehicle-rental merchant categories): Closed after **30 days** with no settlement
* **High-value transactions** (\$1,000 or more): Closed after **31 days** with no settlement
* **Credits and reversals**: Closed after **31 days** with no settlement

When a pending authorization is closed:

* The held funds are released back to your available balance.
* The transaction is marked as complete.
* A [`transaction.completed`](/docs/transaction#transaction-completed) webhook notification is sent (if configured) with a `completionReason` of `stale_authorization_closure`, so your systems can update accordingly.

If the merchant later submits a settlement for a transaction that was already closed, it is processed as a new charge at that time.

## What's next

<Columns cols={2}>
  <Card title="Transaction events" icon="money-bill-transfer" href="/docs/transaction">
    See the full webhook payload and field reference for every transaction event.
  </Card>

  <Card title="Handle disputes & refunds" icon="life-ring" href="/docs/transaction-issues-disputes">
    Walk through filing a dispute, refunds, and chargebacks.
  </Card>
</Columns>
