# Understand eftpos decline and retry fees in Australia

Effective March 1, 2026, eftpos introduced fees for retrying declined card-not-present (CNP) transactions in Australia. These fees apply to merchant-initiated transactions (MITs) retried after a decline. Consumer-initiated transactions (CITs) are exempt.
## How eftpos retry fees work
eftpos tracks retries based on the combination of card number (PAN), card acceptor ID, transaction type, response code, and transaction amount. The retry counter resets after a successful authorization or 30 days after the first attempt.
Retry fees apply to purchase and refund transactions. They don’t apply to reversals or card validations, such as zero-dollar authorization requests.
## Fee structure
| Decline type                             | Fee excluding GST (AUD) | Fee including 10% GST (AUD) |
| ---------------------------------------- | ----------------------- | --------------------------- |
| Initial decline (all transactions)       | 0.0175                  | 0.01925                     |
| 1–15 retries after a soft decline        | 0.0175 per retry        | 0.01925 per retry           |
| 16 or more retries after a soft decline  | 0.20 per retry          | 0.22 per retry              |
| One or more retries after a hard decline | 0.50 per retry          | 0.55 per retry              |
## Hard (permanent) declines
A hard decline indicates that you shouldn’t retry the card. Each retry after a hard decline incurs a fee of AUD 0.50. The following eftpos response codes, which can change over time, are classified as hard declines:
| eftpos response code | Description                         | Stripe `decline_code`             |
| -------------------- | ----------------------------------- | --------------------------------- |
| 04                   | Pick Up Card                        | `pickup_card`                     |
| 14                   | Invalid Card                        | `incorrect_number`                |
| 33                   | Expired Card                        | `expired_card`                    |
| 36                   | Restricted Card                     | `restricted_card`                 |
| 40                   | Requested Function Not Supported    | `service_not_allowed`             |
| 41                   | Lost Card                           | `lost_card`                       |
| 43                   | Stolen Card                         | `stolen_card`                     |
| 54                   | Expired Card                        | `expired_card`                    |
| 56                   | No Card Record                      | `incorrect_number`                |
| 61                   | Exceeds Withdrawal Amount Limits    | `card_velocity_exceeded`          |
| 65                   | Exceeds Withdrawal Frequency Limits | `withdrawal_count_limit_exceeded` |
| 67                   | Hot Card                            | `do_not_honor`                    |
For businesses using [Authorization Boost](https://stripe.com/authorization-boost), Stripe automatically blocks subsequent attempts after a hard decline on an eftpos transaction when Stripe determines that the payment is unlikely to succeed.
**API error response when Stripe blocks a retry:**
```json
{
  "error": {
    "charge": "ch_123456789",
    "code": "card_declined",
    "decline_code": "generic_decline",
    "doc_url": "https://stripe.com/docs/error-codes/card-declined",
    "message": "Your card was declined.",
    "type": "card_error"
  }
}
```
**The `outcome` field in the [charge.failed](https://stripe.com/docs/api/events/types#event_types-charge.failed) webhook:**
```json
{
  "outcome": {
    "network_status": "not_sent_to_network",
    "reason": "previously_declined_do_not_retry",
    "risk_level": "normal",
    "seller_message": "You previously attempted to charge this card. When the customer's bank declined that payment, it directed Stripe to block future attempts.",
    "type": "blocked"
  }
}
```
## Soft (other) declines
All other decline response codes are classified as soft declines. You can retry a soft decline, but each of the first 15 retries incurs a fee of AUD 0.0175. Starting with the 16th retry of the same transaction, each retry incurs a fee of AUD 0.20.
For businesses using [Authorization Boost](https://stripe.com/authorization-boost), Stripe automatically prevents excessive retries to avoid network penalties while balancing the effect on authorization rates.
When Stripe blocks a retry after a soft decline, it returns the same API error response used for blocked hard-decline retries. The response has `outcome.reason` set to `"previously_declined_do_not_retry"` and `outcome.network_status` set to `"not_sent_to_network"`.
## Who is affected
**Businesses on IC+ pricing:** Stripe passes through eftpos retry fees as network costs. Fees for activity on or after September 18, 2026 will first appear on your October invoice. After that, each monthly invoice will include fees from the previous month.
- **With [Authorization Boost](https://stripe.com/authorization-boost):** Stripe automatically blocks retries when the expected cost exceeds the expected benefit of a successful authorization.
- **Without [Authorization Boost](https://stripe.com/authorization-boost):** Stripe doesn’t automatically block retries on your behalf. You’re responsible for managing your retry behavior.
**Businesses on integrated pricing:** After the 15th retry of an eftpos transaction, Stripe automatically blocks subsequent attempts when it determines that the payment is unlikely to succeed.
## How to minimize retry fees
- Don’t retry a payment after receiving a hard decline. Hard declines indicate a permanent problem with the card, such as a lost, stolen, expired, or invalid card.
- For soft declines, limit and space retries according to your retry policy. Fees increase after the 15th retry of the same transaction.
- Use [webhooks](https://stripe.com/docs/webhooks) to monitor for an `outcome.reason` of `"previously_declined_do_not_retry"`. Stop your retry logic when you receive this response.