Refunds

Refund a completed pay-in, in full or in part. You can issue several refunds against one payment until their combined amount reaches the payment amount.

Endpoint: POST /sdk-partner/alternative-mobile-pay/refund

Use the payment's data.id as id and assign a unique merchant_refund_id to this refund. Include amount for a partial refund, or omit it to refund the full remaining amount. Field types, limits, and required parameters are defined in the endpoint's API Reference.

Request:

{ "id": "28a3c125a28075453", "merchant_refund_id": "refund-1", "amount": "5.00" }

Response:

{
  "status": 200,
  "data": {
    "id": "c9051779-c818-4edb-8133-2e309f70f484",
    "status": "pending",
    "refund_of": "28a3c125a28075453",
    "amount": "5.00",
    "remaining_refundable": "5.00"
  }
}

A new refund starts as pending. Its final status is succeeded or failed, delivered by webhook. If the result remains unresolved past your own timeout, contact support with the refund id; the timeout does not cancel the refund or prove that it failed. Continue accepting late webhooks.

Idempotency. Replaying the same merchant_refund_id for the same payment returns the existing refund with its current status (200), including a final status if it has already settled. Reusing the key with a different amount or for another operation is rejected with 409; refund keys must not reuse payment keys. Keep the same key when retrying after a lost response. A pending refund reserves its amount against the remaining refundable balance until it settles.