Payments - Refund a Payment

Easily manage and process customer refunds directly through our Portal or API. We provide full and partial refund capabilities to give you complete control over your post-purchase experience.

Funding Summary

The fundingSummary object provides a detailed breakdown of the financial components of a transaction. Use this data to determine the total funds available for a refund.

FieldDescription
cashPayableToMerchantThe net amount designated for settlement to your business bank account for this transaction.
customerFundedAmountThe total portion of the transaction amount paid directly by the customer.
superFundedAmountThe portion of the transaction value covered by Super's incentive or reward programs.
merchantFundedAmountThe portion of the transaction value covered by your own merchant-specific discounts or promotions.

Full Refunds

A full refund returns the total transaction amount to the customer.

  • Request Logic: Submit a POST request to the refund endpoint with the unique transactionId, amount, and currency.
  • Response Outcome: The fundingSummary will reflect a zero balance across all funded fields, indicating a full refund.
  • Webhooks: We will trigger a Refund Status Webhook to notify your system once the refund is successfully processed.

Request Example

curl --location 'https://api.superpayments.com/2025-11-01/refunds' \
--header 'Authorization: YOUR_SUPER_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "transactionId":"33afc4e4-6f61-4171-9acd-8c9694fe1dff",
    "amount":5000,
    "currency":"GBP",
    "externalReference":"Full Refund"
}'
curl --location 'https://api.test.superpayments.com/2025-11-01/refunds' \
--header 'Authorization: YOUR_SUPER_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "transactionId":"33afc4e4-6f61-4171-9acd-8c9694fe1dff",
    "amount":5000,
    "currency":"GBP",
    "externalReference":"Full Refund"
}'

Response Example

200 Successful Refund
{
  "fundingSummary": {
      "cashPayableToMerchant": {
          "amount": 0,
          "currency": "GBP"
      },
      "customerFundedAmount": {
          "amount": 0,
          "currency": "GBP"
      },
      "merchantFundedAmount": {
          "amount": 0,
          "currency": "GBP"
      },
      "superFundedAmount": {
          "amount": 0,
          "currency": "GBP"
      }
  },
  "transactionId": "1445174f-8e93-4bc2-848b-90cf683ad4a9",
  "transactionReference": "RELUEM65AUC0G4AJ3"
}

Partial Refunds

Partial refunds allow you to return a specific portion of the total transaction value. This is typically used for multi-item orders where only one item is being returned.

  • Request Logic: Submit a POST request to the refund endpoint with the unique transactionId, amount, and currency.
  • Response Outcome: The fundingSummary will reflect the remaining balance across specific funded fields, indicating the funds still available for future refunds.
  • Webhooks: We will trigger a Refund Status Webhook to provide real-time updates on the status of the partial refund.

Request Example

curl --location 'https://api.superpayments.com/2025-11-01/refunds' \
--header 'Authorization: YOUR_SUPER_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "transactionId":"33afc4e4-1234-4171-9acd-8c9694fe1abc",
    "amount":2500,
    "currency":"GBP",
    "externalReference":"Partial Refund"
}'
curl --location 'https://api.test.superpayments.com/2025-11-01/refunds' \
--header 'Authorization: YOUR_SUPER_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data '{
    "transactionId":"33afc4e4-1234-4171-9acd-8c9694fe1abc",
    "amount":2500,
    "currency":"GBP",
    "externalReference":"Partial Refund"
}'

Response Example

200 Successful Refund
{
  "fundingSummary": {
      "cashPayableToMerchant": {
          "amount": 2500,
          "currency": "GBP"
      },
      "customerFundedAmount": {
          "amount": 2500,
          "currency": "GBP"
      },
      "merchantFundedAmount": {
          "amount": 0,
          "currency": "GBP"
      },
      "superFundedAmount": {
          "amount": 0,
          "currency": "GBP"
      }
  },
  "transactionId": "152254f-8e93-4bc2-848b-90cf683ad4a9",
  "transactionReference": "RELUEM65AUC0G6M89"
}

Check Refund Status

Use our GET Refund Transaction endpoint to manually verify the state of a specific refund at any time.

Refund Status Definitions

The transactionStatus field for a refund event will return one of the following values:

StatusDescription
RefundSuccessThe refund has been completed.
RefundPendingThe refund is currently being processed.
RefundFailedThe refund could not be completed.
RefundAbandonedThe refund process was initiated but timed out.

Request Example

To check a refund status, provide the unique transactionId generated during the Create Refund request. This ID is found in the initial refund response and serves as the primary reference for manual verification.

curl --location 'https://api.superpayments.com/2025-11-01/refunds/YOUR_TRANSACTION_ID' \
--header 'Accept: application/json' \
--header 'Authorization: YOUR_SECRET_KEY'
curl --location 'https://api.test.superpayments.com/2025-11-01/refunds/YOUR_TRANSACTION_ID' \
--header 'Accept: application/json' \
--header 'Authorization: YOUR_SECRET_KEY'

Response Example

200 Refund Transaction Details
{
  "brandId": "YOUR_BRAND_ID",
  "payments": [
      {
          "amountInMinorUnits": 1000,
          "fundingCard": {
              "brand": "visa",
              "lastFourDigits": "4242"
          },
          "fundingDetails": {
              "brand": "visa",
              "last4": "4242",
              "reference": "123456789",
              "referenceStatus": "available",
              "referenceType": "acquirer_reference_number",
              "type": "CARD"
          },
          "fundingInstitution": null,
          "reference": "123456789",
          "referenceStatus": "available",
          "referenceType": "acquirer_reference_number"
      }
  ],
  "transactionId": "1edc0640-337b-47ef-970d-0aef5e41234",
  "transactionReference": "REGDAEM3NCS97SABC",
  "transactionStatus": "RefundSuccess"
}

Handle Post-Payment Events

Automate your backend processes by listening for real-time transaction updates.

Automate Order Fulfillment

Set up a webhook to handle post-payment events sent by Super. These notifications ensure your system is updated with the final payment status even if the customer closes their browser or leaves the page before the frontend callback completes.

Why Use Webhooks?

Listening to these asynchronous events is essential for a robust integration. It ensures your system stays in sync for all payment methods—including those that require external authentication.

Tip: For more details on setting up webhooks, check out our Webhook Documentation.