Skip to content

Refunds

Learn how ICEPAY refunds work, how to issue full or partial refunds, track their status, and understand when the customer receives the funds.

A refund returns all or part of a completed payment to the customer.

Depending on your setup, you can issue a refund from the ICEPAY Portal, from a supported ready-made integration, or through the Checkout API.

The way the money is returned depends on the original payment method.

A typical refund follows these steps:

  1. Find the original payment

    A refund is always associated with an existing payment.

  2. Choose the amount

    You can refund the entire payment or only part of it.

  3. Create the refund

    The refund is submitted through the ICEPAY Portal, your e-commerce integration, or the Checkout API.

  4. ICEPAY processes the refund

    Some refunds complete immediately, while others remain pending while they are being processed.

  5. The funds are returned

    The refund is sent using the refund method associated with the original payment method.

ICEPAY supports both full and partial refunds.

Full refund

Returns the full refundable amount of the original payment to the customer.

Partial refund

Returns only part of the original payment amount.

More than one partial refund can be created as long as the combined refunded amount does not exceed the refundable amount of the payment.

For example, if a customer paid €100.00:

Original payment €100.00
First refund -€25.00
Second refund -€30.00
─────────────────────────────
Remaining refundable €45.00

The total of all refunds cannot exceed the amount available on the original payment.

You can create a refund directly from the ICEPAY Portal.

  1. Sign in to the ICEPAY Portal.
  2. Go to Payments.
  3. Find and open the payment you want to refund.
  4. Check whether the payment is refundable.
  5. Select the refund option.
  6. Enter the amount you want to refund.
  7. Confirm the refund.

The payment page also shows previously created refunds and their current statuses.

A refund has its own lifecycle, separate from the original payment.

For refunds created through the current Checkout API, the relevant statuses are:

pending

The refund has been created and ICEPAY is still processing it.

In most cases, API refunds move from pending to completed within 24 hours.

completed

ICEPAY has completed the processing required to return the funds.

The customer may still need to wait for their bank, card issuer, or payment provider to make the refund visible.

In the ICEPAY Portal, a refund that cannot be processed may also be shown as Refused.

refused

The refund could not be processed successfully.

Check the refund and payment details for more information or contact ICEPAY if the reason is unclear.

Refund processing time depends on the original payment method and the customer’s bank or payment provider.

Refunds are generally returned within 5 business days, but this can vary.

A refund reaching completed in ICEPAY means the refund has been sent from ICEPAY’s side. It does not guarantee that it is already visible to the customer.

Card refunds can take longer to appear.

After ICEPAY processes the refund:

  • the refund is normally sent to the relevant card issuer within 1 business day;
  • the issuer may take up to 14 business days to make the refund visible to the cardholder.

If the refund is shown as completed but the customer still cannot see it, the customer should first contact their card issuer.

After 14 days, ICEPAY can provide an Acquirer Reference Number (ARN) where available.

The ARN can help the card issuer trace the refund through the card payment network.

The refund route depends on the original payment method.

Original payment method Refund method
Visa & Mastercard Returned to the original card
iDEAL | Wero Returned through IBAN
Bancontact Returned to the original card
EPS Returned through IBAN
Online Überweisen Returned through IBAN
Pay by Bank Returned through IBAN
Direct debit Returned through IBAN
PayPal Returned through PayPal

The exact refund behaviour of a payment method is documented on the Payment methods page.

A refund can be cancelled while it is still pending.

To cancel a pending refund in the ICEPAY Portal:

  1. Open the original payment.
  2. Find the refund in the payment’s refund overview.
  3. Select the option to cancel the refund.

Once the refund has already been processed, it can no longer be cancelled.

A payment may not be refundable for several reasons.

Refunding may not be enabled for your ICEPAY Account or merchant.

If you expect refunds to be available but the option is missing, contact ICEPAY.

Refunds can only be created when the original payment is in a state that allows a refund.

For example, a payment that was never successfully completed cannot simply be refunded because no successful payment exists to return.

Required bank information is not available yet

Section titled “Required bank information is not available yet”

Some payment methods require information such as an IBAN or BIC to return the funds.

That information may not always be available immediately after the payment.

If the refund option is temporarily unavailable, check the payment again later.

The refundable amount has already been used

Section titled “The refundable amount has already been used”

Previous full or partial refunds reduce the remaining amount that can be refunded.

A new refund cannot cause the combined refunded amount to exceed the available amount of the original payment.

If you integrate directly with the ICEPAY Checkout API, create a refund for an existing payment using:

POST /api/payments/{key}/refund

A refund request contains:

Field Required Description
reference Yes Your reference for the refund.
description No A description or reason for the refund.
amount.value Yes Amount to refund in minor currency units.

The currency does not need to be supplied. ICEPAY uses the currency of the original payment.

For example:

{
"reference": "RFD-00069",
"description": "Received chocolate dip instead of sprinkles",
"amount": {
"value": 299
}
}

As with payment amounts, refund values use minor currency units.

For example:

Refund amount API value
€0.01 1
€2.99 299
€10.00 1000
Refund a payment with the Checkout API

See the API endpoint, request format, and implementation examples for creating refunds.

Every refund created through the Checkout API has its own unique refund key.

For example:

pr-01j1sr38kspvq2z5xek20y565w

This is separate from the original payment key:

pi-01j1sr24qph973tf3hgsvqe7h7

For custom integrations, store the refund key with your own refund record.

You can also supply your own refund reference to associate the refund with your internal system.

When a payment has refunds, its payment representation contains a refunds array.

For example:

{
"refunds": [
{
"key": "pr-01j1sr38kspvq2z5xek20y565w",
"status": "completed",
"amount": {
"value": 299,
"currency": "eur"
},
"description": "Received chocolate dip instead of sprinkles",
"reference": "RFD-00069"
}
]
}

If several refunds have been created for the same payment, the array contains multiple refund entries.

When an API refund changes to completed, ICEPAY sends an update to the webhookUrl configured on the original payment.

The webhook contains the payment together with its current refunds array.

Using refunds with a ready-made integration

Section titled “Using refunds with a ready-made integration”

If your e-commerce integration supports refunds directly, it may allow you to start the refund from the order in your store.

In that case, the integration normally handles:

  • identifying the original ICEPAY payment;
  • creating the refund;
  • sending the correct amount;
  • keeping the refund or order state synchronised.

You should generally use the refund functionality provided by your integration instead of manually creating a second refund for the same order in the ICEPAY Portal.

If you manage payments in the ICEPAY Portal

Section titled “If you manage payments in the ICEPAY Portal”

You can create full or partial refunds from the original payment and follow their status from the Portal.

Keep in mind that:

  • a refund may first remain pending;
  • a completed refund may take additional time to reach the customer;
  • refund processing differs between payment methods;
  • pending refunds can be cancelled;
  • the total of multiple refunds cannot exceed the refundable payment amount.

Use the refund functionality provided by your e-commerce integration when it is available.

The integration normally handles the technical communication with ICEPAY, while you can manage the refund from the order in your store.

Your integration should:

  • associate refunds with the original payment;
  • store the unique ICEPAY refund key;
  • use minor currency units for refund amounts;
  • keep each refund’s status separately;
  • process refund updates from the original payment’s webhook;
  • handle multiple refunds on the same payment;
  • make refund-related webhook processing idempotent;
  • not treat your own refund reference as a unique ICEPAY identifier.