Loopfour
Integrations

Airwallex actions

Reference for the Airwallex actions and trigger: the API key connection, each action id, the four registered event names, settings and an example.

The Airwallex block reads balances, financial transactions, payment intents and deposits, and the Airwallex trigger starts a workflow on a payment or deposit event. For the plain-language guide, see Airwallex.

When to use it

Use the actions for read-only cash reporting and reconciliation. Use the trigger to react when a payment attempt is paid or settled, or a deposit is pending or settled. The block has no write actions.

Connection

  • Provider id: airwallex. API key connection, not a sign-in.
  • The connect form takes three values, all required: Client ID, Account ID and API key. Over the API, POST /api/v1/connections/airwallex/api-key takes them as clientId, externalAccountId and the key (see Connections API).
  • The Account ID is stored as the connection's external account id. Inbound events are routed to the connection whose external account id equals the event's account_id.
  • Pin an account with config.connection. Without it, the step uses the company's default Airwallex connection.

Actions

Action idStudio labelWhat it does
airwallex.listTransactionsList TransactionsList financial transactions, filtered by created date, currency and status.
airwallex.getBalanceGet BalanceRead the current balance of each currency.
airwallex.listPaymentIntentsList Payment IntentsList payment intents, filtered by created date, currency and status.
airwallex.listDepositsList DepositsList deposits, filtered by created date, currency and status.

Settings

FieldStudio labelTypeUsed byRequired for
connectionAirwallex Accountstring (connection id)AllOptional. Without it the step uses the company default connection for this system
from_created_atFrom DatestringlistTransactions, listPaymentIntents, listDeposits
to_created_atTo DatestringlistTransactions, listPaymentIntents, listDeposits
currencyCurrencystringlistTransactions, listPaymentIntents, listDeposits
statusStatusstringlistTransactions, listPaymentIntents, listDeposits
page_numPage NumbernumberlistTransactions, listPaymentIntents, listDeposits
page_sizePage SizenumberlistTransactions, listPaymentIntents, listDeposits

from_created_at and to_created_at are ISO 8601 date-times. All filters are optional; getBalance takes none.

Output

A step's output is the Airwallex API response as is, for example {{steps.list_deposits.items}} for a list. getBalance returns the list of currency balances.

Trigger

Block type airwallex_trigger, trigger config type airwallex_event. The event is stored in selectedTriggerId, not eventKind.

Event nameStudio label
payment_attempt.paidPayment Attempt Paid
payment_attempt.settledPayment Attempt Settled
deposit.settledDeposit Settled
deposit.pendingDeposit Pending

These are the only Airwallex events the handler registers. A trigger matches when selectedTriggerId equals the event name. The optional filter uses MongoDB-style operators against the event's data.object, for example {"currency": {"$in": ["USD", "EUR"]}}.

The trigger block declares these outputs: event (the full payload), eventType, data (the event's data.object), accountId and occurredAt.

At run time the event reaches the workflow as run input, under input.webhookEvent:

PathMeaning
{{input.webhookEvent.eventType}}The event name, such as deposit.settled
{{input.webhookEvent.payload.data.<field>}}A field of the event's data.object, such as amount or currency
{{input.webhookEvent.payload.externalAccountId}}The Airwallex account_id
{{input.webhookEvent.payload.occurredAt}}The event's created_at
{{input.webhookEvent.payload.raw}}The original Airwallex event

Delivery and signatures

  • Events arrive at POST /webhooks/airwallex on the API host.
  • Each request is verified with HMAC-SHA256 over x-timestamp plus the raw body, compared with the hex x-signature header. A timestamp more than 300 seconds from the server clock is rejected.
  • Subscriptions are configured in the Airwallex dashboard. Loopfour does not register them per connection.

Example

Every morning, read yesterday's settled deposits in USD.

{
  "name": "Daily Airwallex deposits",
  "trigger": { "type": "schedule", "cron": "0 7 * * *", "timezone": "America/Los_Angeles" },
  "steps": [
    {
      "id": "list_deposits",
      "type": "action",
      "name": "List settled deposits",
      "action": "airwallex.listDeposits",
      "config": {
        "from_created_at": "2026-11-10T00:00:00Z",
        "to_created_at": "2026-11-11T00:00:00Z",
        "currency": "USD",
        "status": "SETTLED",
        "page_size": 100
      }
    }
  ]
}

A workflow started by the trigger instead uses:

{ "type": "airwallex_event", "selectedTriggerId": "deposit.settled", "filter": { "currency": { "$eq": "USD" } } }

Live catalog

  • GET /api/v1/blocks/airwallex returns the actions and fields; GET /api/v1/blocks/airwallex_trigger returns the trigger block.
  • GET /api/v1/blocks/airwallex/actions/<operation>/examples returns stored examples where they exist.

Errors and limits

  • An Airwallex API error fails the step.
  • A missing connection fails the step with connectionId is required.
  • Unsigned, mis-signed or stale event deliveries are rejected and start no run.

On this page