Skip to main content
Use this endpoint to issue a full or partial refund against a previously captured payment. Refunds are processed through the same upstream provider that handled the original transaction, so processing times and availability depend on that provider. For partial refunds, pass an amount less than the original payment; for a full refund, pass the original payment amount exactly.
Use the Idempotency-Key header on every refund request. If a request fails or times out, retrying with the same key guarantees you will not issue a duplicate refund.

Headers

X-API-Key
string
required
Your secret API key. Keep this value server-side and never expose it in client code.
Idempotency-Key
string
required
A unique string you generate per refund attempt. Reuse the same key to safely retry a failed request without creating a duplicate refund.
Content-Type
string
required
Must be application/json.

Body

transactionId
string
required
UUID of the original captured payment you want to refund.
amount
string
required
Refund amount as a decimal string (for example, "10.00"). Must not exceed the original payment amount. To issue a full refund, pass the exact original payment amount.
currency
string
required
Three-letter ISO 4217 currency code. Must match the currency of the original payment. The value is automatically uppercased before processing.
reason
string
Human-readable reason for the refund. Maximum 500 characters. Stored on the refund record and forwarded to the upstream provider where supported.

Response

data
object
curl -X POST https://api.gateway.accelebit.com/v1/refunds \
  -H "Content-Type: application/json" \
  -H "X-API-Key: smtgw_sk_test_your_secret_key" \
  -H "Idempotency-Key: refund_abc123" \
  -d '{
    "transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "amount": "55.00",
    "currency": "EUR",
    "reason": "Customer requested refund"
  }'
{
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
    "transactionId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "amount": "55.00",
    "currency": "EUR",
    "status": "created",
    "reason": "Customer requested refund",
    "createdAt": "2026-04-09T14:00:00.000Z"
  }
}