We are running Magento 2 and using the TakePayments / Cardstream payment gateway (Magento 2 module).
Setup:
- Magento 2.x
- Payment gateway: TakePayments (Cardstream)
- Integration types available: Hosted / Hosted (Modal) / Direct 3D Secure
- Module Action: Sale
- Invoice Status for new orders: Set invoices to paid
- Amasty RMA extension also in use (but issue occurs without RMA as well)
Problem
When an order contains multiple items and only one item is returned:
- The “Qty to Refund” fields are locked in the Credit Memo screen.
- It is not possible to refund a single item by quantity.
- Refund Online attempts a full refund only.
- Using Refund Offline + Adjustment Refund allows a partial amount refund, but:
- Magento then treats the invoice as fully refunded
- A second Credit Memo cannot be created later if another item is returned.
This makes it impossible to process staggered refunds (e.g. one item returned now, another returned weeks later).
What we’ve tried
- Switching between Hosted / Hosted Modal / Direct 3D Secure (no change)
- Changing “Invoice Status for new orders” (no change)
- Using Adjustment Refund + Refund Offline (works once, but blocks further credit memos)
- Pre-Auth / Verify modes (not usable for real orders per gateway documentation)
We understand that this gateway appears to use a single-step SALE transaction with no true Authorize/Capture separation, but we want to confirm whether this behaviour is expected.
Question
Is this limitation expected behaviour with SALE-only / hosted Cardstream (TakePayments) integrations in Magento 2?
Specifically:
-
Does Magento require true Authorize/Capture support from the payment gateway in order to allow:
- Item-level quantity refunds
- Multiple Credit Memos per invoice
-
Or is there a known configuration or workaround that allows proper partial and staggered refunds with this gateway?
Any confirmation from others using Cardstream / TakePayments with Magento 2 would be appreciated.