Refunds

Refunds return money to the customer. Shuttle supports refunding payments, captures, and entire contracts.

Types of Refund

  • Refund a payment: refund a completed PAYMENT transaction in part or full
  • Refund a capture: refund a previously captured authorisation in part or full
  • Refund a contract: refund across multiple transactions on a recurring contract in a single instruction

You cannot refund an AUTH that hasn't been captured — you must void it instead.

Partial and Multiple Refunds

You can refund less than the full amount. Multi-refund (e.g., refund $20 then later refund another $80 from a $100 payment) is supported but not available on all gateways.

Offline / Manual Refunds

Set manual: true to record a refund that was performed outside of Shuttle (e.g., refunded directly through the processor's dashboard). This creates a record for audit purposes without instructing the gateway.

Contract Refunds

When refunding a contract, you can:

  • Specify an amount to refund across the contract's transactions
  • Use validate_only: true to preview what would be refunded without executing
  • For enterprise multi-entity contracts, specify which legal_entities to refund

Status

StatusDescription
SUCCESSRefund was processed successfully
PENDINGRefund is still being processed
DECLINEDRefund was declined by the gateway
INVALID_PAYMENT_METHODRefund attempted on a disconnected gateway or unsupported payment method
UNRESOLVEDNo conclusive result from the gateway
UNATTRIBUTEDRefund succeeded but had an internal recording issue