What is it?
In the Salesforce Commerce Cloud (SFCC) integration, Ingrid Returns calculates and tracks refund amounts but does not issue refunds in SFCC. When items are processed at the warehouse, Ingrid works out exactly what the customer is owed and signals that the refund is ready. Your system then issues the actual refund in SFCC.
This is a deliberate design boundary: Ingrid Returns makes no refund API calls to SFCC at any point. What Ingrid provides is the calculated amount, refund status tracking, event notifications, and Public API access to the full breakdown — so your system always issues the correct amount without manual calculation.
How it works
A customer starts a return in the Ingrid Returns widget.
The return is confirmed and a carrier label is issued.
Items arrive at the warehouse and are confirmed received — through quality check, a warehouse integration, or a report from your system.
Ingrid calculates the refund amount: item prices minus any return shipping cost, handling fee, or exchange adjustment.
Ingrid records the refund internally and, if you've set up a subscription, sends a
REFUND_PENDING_EXTERNALevent to your webhook endpoint when the amount is ready.Your system fetches the refund details from the Public API and issues the refund in SFCC.
Optionally, your system confirms the refund back to Ingrid, which updates the status so reconciliation stays accurate.
Ingrid never calls SFCC to move money. Your system issues every refund.
Configuration
Webhook setup
Configure webhooks in Returns Back-office → Integrations → Webhook Outgoing Subscriptions. Subscribe at minimum to the REFUND_PENDING_EXTERNAL event, which fires once Ingrid has finished calculating the refund amount and it's ready to issue. The Back-office shows example payloads for each event — review these before building your listener.
Setting | Description |
Webhook URL | Your HTTPS endpoint that receives event payloads from Ingrid Returns |
Authentication | API key (you generate it), OAuth 2.0, or Microsoft Business Central authentication |
Event type | The return lifecycle events you want to act on |
Public API access
Generate an API key in Returns Back-office → Settings → API Keys and pass it as x-api-key in your requests.
Endpoint | Description |
| Full return details, including the calculated refund amount and any refund transactions |
| Paginated list of refund transactions with status |
| Report items received at the warehouse (if you report receipt via API) |
For the full, current list of endpoints — including the refund confirmation endpoint — see the API reference at https://api.ingrid.com/returns/swagger-ui/index.html.
Examples
Automated refund driven by a webhook
A merchant wants refunds issued as soon as items are confirmed at the warehouse.
Warehouse staff confirm receipt in Ingrid Returns using quality check.
Ingrid calculates the refund and sends a
REFUND_PENDING_EXTERNALevent to the merchant's endpoint.The merchant's system reads the refund transaction ID from the payload and fetches the details from the Public API — for example, two items totaling SEK 654.00 with no return shipping fee.
The merchant issues the SEK 654.00 refund in SFCC.
The merchant confirms completion via the Public API.
Result: the refund appears in SFCC within minutes of warehouse confirmation, and Ingrid shows it as completed.
Manual refund processing
A smaller merchant processes refunds on a schedule.
The merchant filters the Returns Back-office for returns received but not yet refunded.
The Back-office shows the calculated refund amount for each return.
The merchant issues the refund manually in SFCC, matching that amount.
Optionally, the merchant confirms the refund via the Public API to keep status in sync.
Result: amounts are calculated centrally by Ingrid, never estimated, and the audit trail stays accurate when confirmation is used.
FAQ
The return is confirmed received but no refund appeared in SFCC. Why?
Ingrid does not issue refunds in SFCC. Your system must issue it — automatically via a webhook listener or manually. Check that your webhook subscription is active and your endpoint is reachable.
Where do I see the calculated refund amount?
In the Returns Back-office on the individual return, or via GET /merchant/return/{returnId}, which returns the Ingrid-calculated amount with a line-by-line breakdown.
The refund shows as pending in Ingrid even though I issued it in SFCC — is that a problem?
It means the refund confirmation step wasn't called. It doesn't affect the actual refund in SFCC, but Ingrid's reconciliation reports will show it as outstanding until you confirm it via the Public API.
Can the Ingrid amount differ from what I issue in SFCC?
Yes. Ingrid calculates from purchase prices and configured deductions. If you issue a different amount — say, extra goodwill — the two won't reconcile automatically. Record the actual amount using the confirmation endpoint.
Is there any case where Ingrid refunds in SFCC automatically?
No. There is no automatic outbound refund call to SFCC in any configuration.
Limitations
Constraint | Type | Details |
No automatic refund in SFCC | Hard limit | Ingrid makes no refund API calls to SFCC. Your system issues every refund. |
No automatic restock in SFCC | Hard limit | Inventory isn't updated in SFCC after a return. Restock is handled on your side. |
Status needs manual confirmation | Configurable behavior | Without calling the confirmation endpoint, refund status stays pending in Ingrid, affecting reconciliation reports. |
Webhook delivery failure | Behavior | If your endpoint is unreachable, event delivery may fail. Use Public API polling as a fallback and verify current retry behavior with the Returns team. |
