← Back to your dashboard

Your Airwallex API key

Which permissions to tick, and why each one is needed. A read-only key will not work — GoCushy has to create charges on your account, so the key needs write access to payments.

On this page

1. Create the key

  1. Sign in to Airwallex (or the demo environment if you're testing).
  2. Go to Account settings → Developer → API keys, then Create API key.
  3. Airwallex shows you a Client ID and an API key. You'll paste both into GoCushy.
The API key is shown once. Copy it before you close the dialog — if you lose it you'll need to create a new key, and re-connect in GoCushy.

2. Tick these permissions

Airwallex groups permissions by area, each with Read and Write. Here is exactly what GoCushy calls, and what it's for:

Permission areaReadWriteWhat GoCushy does with it
Payment Intents
/pa/payment_intents
Read Write Creates the charge for every purchase, and reads it back to confirm the money actually moved before marking an order paid.
Customers
/pa/customers
Read Write Needed for subscriptions and one-click upsells — the buyer's saved payment method belongs to a customer record.
Payment Consents
/pa/payment_consents
Read Write The buyer's mandate to charge again later: subscriptions (merchant-initiated) and one-click upsells (customer-initiated).
Refunds
/pa/refunds
Read Write Refunds you issue from your GoCushy dashboard, full or partial. Easy to miss — see the warning below.
FX / Quotes
/fx/quotes
Read Write Only if you sell in more than one currency. Locks a rate so the buyer sees a real price in their own currency.
Webhooks optional optional GoCushy never creates your webhook for you — you add it by hand (see below), so this permission isn't required. Harmless to leave on.
Simplest option: if your Airwallex account is your own and you're not splitting access across a team, Read All + Write All is fine and saves hunting through the list. Airwallex doesn't offer narrowly-scoped keys the way some processors do, so most people do this.
Don't skip Refunds. A key with charges but no refund permission connects perfectly and works for months — then fails the first time you try to refund a real customer, when you least want a surprise. Tick it now.

3. Live or Demo — pick the one that matches your key

Airwallex has two completely separate environments with separate keys. GoCushy asks which one you're connecting:

Live keys won't work against Demo and vice versa — GoCushy validates the key the moment you connect, so a mismatch fails immediately rather than silently.

Live and Demo are two separate Airwallex environments with separate keysAirwallex Live and Airwallex Demo drawn side by side as two separate accounts, each with its own login, its own API keys and its own API host — api.airwallex.com and api-demo.airwallex.com — with crossed arrows between them struck out. Below, the three ways the Connect Airwallex form can end: a live key on Environment Live connects; a demo key on Environment Live is rejected at connect with the verbatim error; and a demo key on Environment Demo connects perfectly and then marks orders paid, delivers the product, issues an invoice and books revenue on money that does not exist. Live and Demo are two Airwallex accounts wearing one name The Environment select decides which one your keys go to. One crossing fails on the spot; the other connects perfectly. TWO ENVIRONMENTS · TWO SETS OF KEYS · NOTHING SHARED LIVE Real money · production SIGN IN www.airwallex.com/app/login KEYS FROM Account settings → Developer → API keys GOCUSHY CALLS api.airwallex.com DEMO Money that is not real · testing SIGN IN demo.airwallex.com/app/login KEYS FROM Account settings → Developer → API keys GOCUSHY CALLS api-demo.airwallex.com never works So there are three ways to press Connect Airwallex. Two of them are problems, and only one of those two tells you. DASHBOARD › PAY WITH AIRWALLEX LIVE KEY · Environment: Live connected CHECKED AT CONNECT api.airwallex.com Token issued. Connection saved. Real charges settling on your own account. This is production. DEMO KEY · Environment: Live not connected CHECKED AT CONNECT api.airwallex.com Airwallex rejected these credentials — check the client ID, API key, and environment (live vs demo). Nothing is saved. DEMO KEY · Environment: Demo connected CHECKED AT CONNECT api-demo.airwallex.com Orders marked paid. Product delivered. Invoice issued. Revenue booked. Fine for testing. Not fine on a checkout you sell from. The crossing that fails is the safe one. The crossing that connects is the one that costs you. The dashboard names the environment in Manage and in the currencies note — never on the checkout, the order, or the receipt.
Live and Demo are two separate Airwallex accounts with separate logins, separate keys and separate API hosts — api.airwallex.com and api-demo.airwallex.com — and a Client ID and API key created in one never works against the other. GoCushy verifies the credentials against the host your Environment select names, before it saves anything, so a demo key submitted as Live is rejected on the spot with "Airwallex rejected these credentials — check the client ID, API key, and environment (live vs demo)" and no connection is stored. That crossing is the safe one, because it tells you. A demo key correctly submitted as Demo connects perfectly and is never questioned again, and left in place on a checkout you sell from it marks orders paid, delivers the product, issues an invoice and books revenue on money that does not exist. The dashboard names the environment in the Manage dialog and in the Currencies you collect note, and nowhere on the checkout, the order or the receipt.

4. Add the webhook

Separate from the API key, and worth doing: it's what makes payments confirm instantly instead of on a 5-minute sweep, and it's the only way refunds and chargebacks made in Airwallex get back to GoCushy.

Webhook setup, and which six events to subscribe to →

If connecting fails

Airwallex API reference →