Configure webhooks
Set up webhook notifications and the processing job to keep SFCC order statuses in sync with Airwallex.
To keep order statuses in sync between Airwallex and your Salesforce Commerce Cloud (SFCC) storefront, configure webhooks so Airwallex can notify your storefront about asynchronous payment events such as successful payments and refunds.
Before you begin
- You have configured Airwallex settings in Business Manager.
- You have access to the Airwallex web app to create webhook endpoints.
Register the webhook URL in Airwallex
-
In Business Manager, go to Merchant Tools > Site Preferences > Airwallex Settings and copy the Webhook URL.
-
Log in to the Airwallex web app .
-
Go to Settings > Developer > Webhooks and create a new webhook.
-
Paste the copied URL into the Notification URL field.
-
Subscribe to the following events:
payment_intent.succeededrefund.accepted
-
Copy the Webhook Secret that Airwallex generates.
Save the webhook secret in Business Manager
-
In Business Manager, go to Merchant Tools > Site Preferences > Airwallex Settings.
-
Paste the webhook secret into the Webhook Secret field for the active environment.
-
Save your changes.
Enable the webhook processing job
The AirwallexProcessWebhooks job processes queued webhook events every 5 minutes. It is created during the metadata import, but you need to verify it is enabled and configured for your site.
-
In Business Manager, go to Administration > Operations > Jobs.
-
Find AirwallexProcessWebhooks.
-
Open the job and verify:
- The Site Context is set to your site ID (update it if needed).
- The schedule is set to run every 5 minutes.
-
If the job is not already enabled, click Enable or toggle it on.
The job processes up to 100 pending webhook events per run, with up to 3 retries for failed events. Completed events are automatically cleaned up after 30 days.
How webhooks work
-
Airwallex sends a
POSTrequest to your webhook endpoint with the event payload. -
The cartridge verifies the request signature using HMAC-SHA256 with your webhook secret and the
x-signature/x-timestampheaders. -
Requests with timestamps older than 5 minutes are rejected for replay attack protection.
-
Valid events are enqueued as
AirwallexWebhookEventcustom objects for asynchronous processing. -
The scheduled job processes queued events and updates order statuses accordingly.
Next steps
Now that you have configured webhooks, verify your full setup before switching to production: