QA Interview
Airwallex QA and SDET Interview Questions (2026)
Prepare for airwallex qa sdet interview questions covering payments, APIs, webhooks, transfers, issuing, SQL, reliability, automation, and QA leadership.
27 min read | 4,184 words
TL;DR
Strong Airwallex interview answers combine payment-domain precision with practical test engineering. Model money movement as explicit states, make retries and asynchronous events safe, and connect automation choices to financial and customer risk.
Key Takeaways
- Explain Airwallex quality through financial invariants, asynchronous state, regional behavior, and customer impact.
- Separate PaymentIntent, PaymentAttempt, capture, settlement, refund, dispute, and transfer states in every test design.
- Use request_id for safe retries and verify ambiguous outcomes through retrieval, webhooks, and reconciliation.
- Design webhook consumers for raw-body HMAC checks, immediate acknowledgement, durable processing, duplicates, and reordering.
- Show executable engineering skill with contract tests, state models, exact money handling, SQL, and production-grade diagnostics.
- Cover payouts, FX, issuing, connected-account isolation, security, performance, and observability beyond checkout automation.
- Support behavioral claims with a decision, evidence, measurable outcome, and lesson that changed your engineering practice.
These airwallex qa sdet interview questions help you prepare for payment acceptance, payouts, foreign exchange, issuing, APIs, webhooks, coding, reliability, and behavioral rounds. The questions are representative practice based on Airwallex's public documentation, not leaked interview material or a promise that every team uses the same loop.
Airwallex is a global financial platform, so a convincing answer must go beyond checking a successful UI message. Trace money, identifiers, authorization, customer action, funding, settlement, reconciliation, and late failure across service boundaries. Confirm the actual interview stages, coding language, and product area with your recruiter because role scope can change.
Use the models below aloud, then replace the examples with evidence from your work. Compare your preparation with company-specific QA interview loops, record a timed response in QA interview practice, and tailor your resume evidence in the resume upload workspace.
TL;DR
| Topic | Failure worth discussing | Strong evidence |
|---|---|---|
| Payment acceptance | A transport success is mistaken for completed payment | PaymentIntent states, PaymentAttempts, webhooks, capture assertions |
| API design | A timeout or duplicate request moves money twice | Stable request_id, bounded retry, retrieval, reconciliation |
| Asynchronous events | Events duplicate, reorder, or arrive after browser exit | HMAC verification, durable queue, event-ID deduplication |
| Payouts and FX | Sent money later fails or conversion totals drift | Lifecycle model, quote boundaries, ledger and SQL checks |
| Issuing and platforms | Card controls or account context leak across tenants | Sandbox simulations, negative authorization, context isolation |
| Reliability | Regional or dependency faults create ambiguous state | Correlated telemetry, safe fault injection, recovery invariants |
| Leadership | Quality work becomes a list of tools without impact | Risk decision, evidence, outcome, and lesson |
Interview Questions and Answers
The following ten topics contain 50 fully answered questions. For each one, clarify assumptions, name the financial or customer risk, describe the smallest useful test set, and close with an observable oracle or trade-off.
1. airwallex qa sdet interview questions: Role and Product Context
Q: What interview process should an Airwallex QA or SDET candidate expect?
Expect the exact sequence to depend on team, level, location, and current hiring plan. A sensible preparation set includes recruiter context, technical depth, test design, coding for SDET roles, debugging, system reasoning, and behavioral evidence. Treat the job description and recruiter briefing as authoritative rather than asserting a universal Airwallex loop. Ask early whether an exercise targets payment acceptance, payouts, issuing, platform APIs, or an internal system.
Q: How would you answer Why Airwallex?
Connect one demonstrated strength to a real financial-platform problem. For example, explain how your work on idempotent APIs or asynchronous reconciliation could protect a cross-border payment journey, then identify an Airwallex product area you genuinely want to learn. Add why the role's ownership level fits your next step. Generic excitement about fintech does not show product understanding.
Q: How are QA and SDET expectations different in this environment?
A QA role may emphasize exploratory analysis, release risk, regulatory journeys, acceptance criteria, and cross-functional defect investigation. An SDET is also expected to build maintainable code, service-level automation, CI controls, test data systems, and observability hooks. Both roles must recognize when a technically valid response produces a financially incorrect outcome. The title matters less than the engineering leverage shown in the answer.
Q: What should a 90-second introduction contain?
Open with your current scope, relevant experience, and the kinds of systems you protect. Give one compact example involving risk, your technical action, and a result such as faster feedback or fewer escaped incidents. Mention payment, API, data, or distributed-system experience only if you can defend it under follow-up. Finish by linking that evidence to the advertised team.
Q: How should you research Airwallex before the interview?
Build a one-page product map covering payments acceptance, Wallet and FX, payouts, issuing, and connected accounts, then narrow it to the posting. Trace one user action through API calls, state changes, webhooks, reports, and support operations. Read current Airwallex developer documentation because API versions and capabilities evolve. Prepare two questions about the team's customer promise and failure boundaries.
2. Payment Acceptance and State Modeling
Q: What is the difference between a PaymentIntent and a PaymentAttempt?
A PaymentIntent represents the order-level intent and persists across the payment lifecycle. A PaymentAttempt is one try using a particular method, so a failed card followed by a successful wallet payment belongs to one intent but two attempts. Tests should preserve that relationship and avoid counting failed attempts as separate orders. Airwallex's payment status reference is the source for current states.
Q: Why is an HTTP 200 response insufficient proof of payment success?
HTTP status describes the request exchange, not the final movement of funds. A PaymentIntent may require customer action, wait in PENDING, enter risk review, or require manual capture before becoming SUCCEEDED. Fulfillment should follow the authoritative business status and relevant webhook, not a redirect page. The test oracle therefore correlates API response, stored order, event, and later retrieval.
Q: How would you test manual capture?
Create an intent with automatic capture disabled and verify authorization produces REQUIRES_CAPTURE without marking the order fulfilled. Exercise full capture, permitted partial capture, repeated capture, excess amount, capture after cancellation, and expiry near the authorization window. Assert captured totals never exceed the authorized amount. Reconcile the captured transaction rather than stopping at the capture endpoint response.
Q: Which refund and dispute cases are highest value?
Cover full and partial refunds, multiple partial refunds, duplicate submission, concurrent requests, unsupported amount, and refund after the eligible boundary. A dispute suite needs evidence upload, deadline handling, acceptance, challenge, loss, win, fee treatment, and event replay. Customer messaging should distinguish a requested refund from funds actually returned. Use payment testing scenarios to practice these financial distinctions.
Q: How would you test local payment methods without building an unmanageable matrix?
Partition methods by behavior: immediate confirmation, redirect, QR or app switch, delayed bank result, mandate-based debit, and asynchronous expiry. Cross those classes with high-risk currencies, markets, browsers, devices, and failure paths, then use pairwise coverage for secondary dimensions. Include abandonment, duplicate callback, browser closure, localization, and accessibility. Production mix and recent changes decide which combinations receive full end-to-end coverage.
3. APIs, Authentication, Idempotency, and Contracts
Q: How should an Airwallex API client manage authentication?
Keep Client ID and API key in a secret store and exchange them server-side for an access token over HTTPS. Airwallex documents a 30-minute token lifetime, but clients should honor expires_at, reuse a valid token, and refresh before expiry rather than logging in per request. Test expired, invalid, insufficient-scope, and multi-account x-login-as behavior. Logs may contain a safe correlation ID, never credentials or bearer tokens.
Q: What should happen when PaymentIntent creation times out?
The result is ambiguous because the server may have committed before the client lost the response. Retry the same logical operation using the original UUID request_id, apply bounded backoff, and retrieve or reconcile the intent instead of inventing a second order. Airwallex documents request_id as the idempotency key for PaymentIntent creation. API idempotency testing gives additional race and recovery cases.
Q: How would you test two concurrent calls with one request_id?
Release identical calls from a barrier so they overlap intentionally. Capture status, error body, returned resource IDs, downstream attempts, and webhook event IDs for both clients. The decisive invariant is one PaymentIntent and one business side effect, even if one caller receives an in-progress conflict or the original response. Repeat after a client timeout to cover a realistic retry race.
Q: What belongs in an API contract suite?
Validate required fields, enums, amount precision, currency support, identifier length, content type, authentication, account scope, error schema, and unknown optional fields. Pin the intended date-based API version and run consumer checks before adopting a newer version. Structural validation cannot replace semantic assertions about state and money. Pact contract testing is useful where your service consumes an internal adapter contract.
Q: Show a runnable sandbox PaymentIntent request and verification.
Obtain credentials from an authorized sandbox account and keep both values out of shell history where possible. The commands use the documented authentication and PaymentIntent endpoints, create one UUID request ID, then retrieve the returned intent. The final jq assertion fails unless the resource ID and status exist. Never point an interview demo at production.
export AIRWALLEX_CLIENT_ID='replace-with-sandbox-client-id'
export AIRWALLEX_API_KEY='replace-with-sandbox-api-key'
export ORDER_ID=qa-interview-001
export REQUEST_ID=$(uuidgen | tr '[:upper:]' '[:lower:]')
export ACCESS_TOKEN=$(curl -fsS -X POST 'https://api.sandbox.airwallex.com/api/v1/authentication/login' -H "x-client-id: $AIRWALLEX_CLIENT_ID" -H "x-api-key: $AIRWALLEX_API_KEY" | jq -r '.token')
curl -fsS -X POST 'https://api.sandbox.airwallex.com/api/v1/pa/payment_intents/create' -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -d "{\"request_id\":\"$REQUEST_ID\",\"amount\":10.00,\"currency\":\"USD\",\"merchant_order_id\":\"$ORDER_ID\"}" | tee /tmp/airwallex-intent.json
export INTENT_ID=$(jq -r '.id' /tmp/airwallex-intent.json)
curl -fsS -G "https://api.sandbox.airwallex.com/api/v1/pa/payment_intents/$INTENT_ID" -H "Authorization: Bearer $ACCESS_TOKEN" | jq -e '.id and .status'
4. Webhooks and Asynchronous Processing
Q: How should an Airwallex webhook endpoint be designed?
Read the raw request bytes, verify x-timestamp and x-signature, persist or enqueue the accepted event, and return HTTP 200 quickly. Execute fulfillment or ledger mutations outside the request thread so a slow dependency does not trigger unnecessary delivery retries. Store the stable event id with a unique constraint. The official webhook overview notes duplicates, exponential retry, and non-guaranteed order.
Q: How do you test webhook signature verification?
Generate an HMAC-SHA256 hex digest over the exact timestamp string followed by the untouched JSON body. Test a valid signature, altered whitespace, changed field, wrong secret, missing header, malformed hex, and timestamp outside your chosen tolerance. Compare equal-length buffers with a timing-safe function. Verification must happen before parsing because re-serialization can change the signed bytes.
Q: How do you make duplicate delivery harmless?
Insert the event ID and business mutation in one transactional boundary or use an inbox record that the worker claims exactly once. Replay the same payload before and after a process restart, then confirm one fulfillment, one notification, and one ledger entry. An in-memory set fails the restart case. Deduplication should still allow a genuinely different event for the same PaymentIntent.
Q: What if succeeded and cancelled-looking events arrive out of order?
Do not let arrival order overwrite a stronger business truth. Apply an explicit state transition policy, use event created_at only where the contract supports ordering, and retrieve the resource when events appear contradictory. Quarantine impossible transitions for investigation instead of silently accepting them. Permutation tests should converge on the same final order and financial totals.
Q: How would you test recovery after a webhook outage?
Pause the consumer, accumulate a controlled backlog, and re-trigger events through the supported sandbox or web app workflow. On recovery, measure drain rate, queue age, duplicate count, poison-event isolation, downstream rate limits, and financial side effects. A single bad event must not block unrelated work. Finish by reconciling accepted IDs against processed outcomes with webhook API testing.
5. Coding and Test Automation
Q: What would a strong payment automation architecture look like?
Keep deterministic money and state rules in fast unit tests, exercise service contracts at the API layer, and reserve browser coverage for checkout integration and customer experience. Use builders that create unique merchant order IDs and expose resulting resource IDs for cleanup and diagnosis. Workers should poll named states or consume events with deadlines, never sleep blindly. Reports must preserve request, intent, attempt, and event correlation without exposing sensitive fields.
Q: How would you code and test Airwallex webhook verification?
The following mini-project uses only current Node.js built-ins, so it runs without third-party packages. It implements the documented timestamp-plus-raw-body digest and validates clock skew after the signature matches. Production code should obtain the subscription secret from a secret manager. Save all three files with the shown names.
{
"type": "module",
"scripts": {
"test": "node --test"
}
}
// airwallex-webhook.mjs
import { createHmac, timingSafeEqual } from 'node:crypto';
export function signWebhook({ timestamp, rawBody, secret }) {
return createHmac('sha256', secret).update(timestamp + rawBody).digest('hex');
}
export function verifyWebhook({ timestamp, rawBody, signature, secret, nowMs, toleranceMs = 300000 }) {
if (!/^\d+$/.test(timestamp) || !/^[a-f0-9]{64}$/i.test(signature)) return false;
const expected = Buffer.from(signWebhook({ timestamp, rawBody, secret }), 'hex');
const actual = Buffer.from(signature, 'hex');
if (expected.length !== actual.length || !timingSafeEqual(expected, actual)) return false;
return Math.abs(nowMs - Number(timestamp)) <= toleranceMs;
}
// airwallex-webhook.test.mjs
import test from 'node:test';
import assert from 'node:assert/strict';
import { signWebhook, verifyWebhook } from './airwallex-webhook.mjs';
const timestamp = '1787337000000';
const rawBody = '{"id":"evt_123","name":"payment_intent.succeeded"}';
const secret = 'sandbox-subscription-secret';
const signature = signWebhook({ timestamp, rawBody, secret });
test('accepts the exact signed body inside tolerance', () => {
assert.equal(verifyWebhook({ timestamp, rawBody, signature, secret, nowMs: 1787337001000 }), true);
});
test('rejects body mutation and stale delivery', () => {
assert.equal(verifyWebhook({ timestamp, rawBody: rawBody + ' ', signature, secret, nowMs: 1787337001000 }), false);
assert.equal(verifyWebhook({ timestamp, rawBody, signature, secret, nowMs: 1787337600001 }), false);
});
node --version
npm test
# Expected: 2 tests pass, 0 fail
Q: How should money be represented in automated tests?
Follow each endpoint's documented unit and precision instead of assuming one universal representation. For decimal major-unit inputs, parse controlled strings with a decimal library or exact conversion rule rather than binary floating-point arithmetic. Preserve transaction, settlement, fee, and wallet currencies separately. Boundary tests should include zero, minimum, maximum, excess precision, rounding, and currencies with different decimal conventions.
Q: How do you keep API tests parallel and isolated?
Give every test a unique business reference and keep account, currency, capability, and webhook subscription explicit. Partition scarce shared resources, serialize only the cases that truly mutate global configuration, and clean up reversible objects through supported APIs. Parallel tests must not compete for a fixed balance without reservation logic. When isolation is impossible, label the suite and schedule it separately.
Q: What makes a useful failure message in a fintech test?
Report expected transition, observed state, safe resource identifiers, API version, attempt number, elapsed time, and the last relevant event. Include sanitized response fragments and a correlation path to logs. Avoid dumping card data, secrets, personal information, or full webhook bodies into CI. A failure should help an engineer distinguish product defect, environment setup, delayed event, and test bug.
6. Payouts, FX, SQL, and Reconciliation
Q: How would you test an outbound transfer lifecycle?
Model approval, scheduling, funding, processing, sending, payment, failure, and cancellation as distinct states for the configured API version. Airwallex documents that even PAID can later become FAILED after rejection by a clearing system or recipient bank. Verify legal transitions, webhook mapping, funding details, and customer messaging. Continue monitoring after apparent success and define remediation for late failure.
Q: Which beneficiary tests matter most?
Validate country and payment-method-specific required fields, format, account ownership rules, duplicate detection, editing restrictions, and unsupported corridors. Negative cases should cover invalid bank identifiers, name mismatch handling, inactive beneficiary, malicious text, and cross-account access. A preview or validation response does not prove a later transfer can settle. Keep personally identifiable test data synthetic and region-appropriate.
Q: How would you test an FX conversion?
Capture source and destination currencies, quoted rate, fee, expiry, amount direction, and rounding rule before execution. Exercise quote acceptance just before and after expiry, insufficient balance, repeated request, market movement, inverse calculations, and unsupported pairs. The ledger must balance in each currency without deriving truth from UI formatting. Reconcile conversion records against wallet balance movements.
Q: What SQL query could reveal duplicate business operations?
Group by the merchant's stable operation ID rather than a provider-generated attempt ID. Return both count and summed amount so reviewers can see whether duplication changed money. Investigate legitimate retries separately if the data model allows several attempts per operation. A production query should be scoped by account and time window to control cost.
SELECT account_id, merchant_order_id, currency,
COUNT(*) AS intent_count, SUM(amount) AS requested_total
FROM payment_intents
WHERE created_at >= CURRENT_TIMESTAMP - INTERVAL '1 day'
GROUP BY account_id, merchant_order_id, currency
HAVING COUNT(*) > 1;
Q: How would you reconcile API, webhook, and ledger data?
Choose a cut-off and join order ID, PaymentIntent ID, attempt ID, event ID, and financial transaction reference. Compare status, gross amount, refunds, fees, net settlement, currency, and timestamps while accounting for known settlement lag. Classify gaps as missing, duplicate, late, mismatched, or unsupported rather than one generic failure. Use SQL interview questions for QA to practice joins and anti-joins for this analysis.
7. Issuing and Connected Accounts
Q: How would you test an Airwallex-issued card authorization?
Create an eligible sandbox card and use the documented issuing simulation API to generate approved and failed authorizations. Cover incremental authorization, capture, partial capture, reversal, refund, and authorization-plus-capture. Verify transaction state, wallet effect, webhook, merchant metadata, and card controls. Keep the simulation account configuration visible because unsupported capabilities can mimic product defects.
Q: Which card-control boundaries deserve coverage?
Test per-transaction and period limits immediately below, at, and above the boundary. Combine merchant category, currency, geographic, online, contactless, and card-status controls to expose precedence errors. Concurrent authorizations must not spend the same remaining limit twice. Changes should take effect according to the documented timing and leave an auditable decision reason.
Q: What happens when a card is frozen or cancelled?
A frozen card should reject new use while preserving the ability to unfreeze according to policy. Cancellation is permanent, but pending or uncleared transactions may still complete, so tests must not expect historical activity to disappear. Exercise a race between status change and authorization. Verify UI, API, webhook, wallet, and support views agree on the outcome.
Q: How do you test connected-account isolation?
Create controlled principals and resources in two accounts, then attempt cross-account reads, writes, transfers, cards, reports, and event handling. Check both missing and incorrect x-on-behalf-of or account context where the capability uses it. Denials should avoid revealing whether another tenant's resource exists. Cache keys, logs, exports, queues, and scheduled jobs need the same isolation tests as synchronous APIs.
Q: How should KYC or capability-state testing work?
Model incomplete, pending, information-requested, active, suspended, and rejected states supported by the chosen account flow. Use sandbox simulations rather than fake production identities or bypassing real controls. Assert only enabled capabilities become available and that state-change webhooks update the platform promptly. Resubmission must preserve history and request only the missing evidence.
8. Reliability, Performance, Security, and Observability
Q: How would you test rate limiting and 429 handling?
First identify the documented identity, scope, window, headers, and retry contract for the endpoint. Generate controlled traffic below and above the limit, including concurrent bursts and separate accounts. The client should honor server guidance, apply jittered backoff, cap retries, and never turn a limited write into duplicates. Recovery after the window must not unleash an unbounded queue.
Q: What resilience experiments are appropriate for a payment service?
Inject one understood fault in an authorized non-production environment: timeout, connection reset, delayed webhook, queue outage, database failover, or dependency 5xx. Define steady state, financial invariants, blast radius, abort condition, and recovery proof before execution. Observe client result and internal state together. Random chaos without money reconciliation cannot demonstrate safety.
Q: How would you performance-test a checkout API?
Build a workload from expected method mix, regions, payload sizes, authentication reuse, success paths, declines, and customer-action flows. Report throughput, latency percentiles, errors, saturation, and downstream contribution rather than a single average. Separate cold connections from keep-alive traffic and synchronous response time from final event latency. Performance testing interview questions can help structure capacity trade-offs.
Q: Which security tests are essential?
Verify least-privilege credentials, account and object authorization, secret rotation, webhook authenticity, replay tolerance, input validation, safe errors, and data redaction. Payment pages need tampered amount, return URL, session binding, clickjacking, and client-secret exposure checks within authorized scope. Reports and support tools deserve access and export tests too. Never run intrusive scanning without written authorization and clear containment.
Q: What observability would you request for fast diagnosis?
Use stable correlation across merchant operation, provider resource, attempt, event, and ledger entry. Metrics should expose state-transition counts, error codes, event lag, deduplication, retry volume, queue age, and reconciliation gaps with bounded label cardinality. Traces should show service and dependency timing without payment payloads. Alerts should describe customer or financial risk and link to an actionable runbook.
9. Debugging, Strategy, and Behavioral Scenarios
Q: A payment is successful at Airwallex but the order is unpaid internally. How do you investigate?
Start with one order and build a timeline from create response through PaymentAttempt, webhook delivery, consumer logs, database mutation, and fulfillment. Compare a passing order with the same method and API version. Check signature rejection, dedupe collision, queue delay, invalid transition, transaction rollback, and account routing. Contain customer impact, replay safely, then reconcile the affected population.
Q: How do you decide what to automate first?
Rank journeys by financial impact, frequency, change rate, defect history, observability, and repeatability. Begin with deterministic API and state invariants that give fast coverage, then add a few critical customer journeys. Keep volatile experiments exploratory until their behavior stabilizes. The resulting portfolio should reduce decision risk, not maximize test count.
Q: Tell me about a release you would block.
Choose a story where evidence showed a material customer, security, compliance, or money risk and the rollback path was inadequate. Explain the threshold agreed with stakeholders, the smallest reproduction, affected scope, and alternatives you proposed. State what happened after the decision and how the team improved prevention. Avoid presenting personal authority as more important than shared facts.
Q: How would you respond to a developer who calls a defect impossible?
Align first on the exact build, account, time, inputs, and expected contract. Share a minimal reproduction plus correlation evidence, then invite a competing hypothesis or joint trace. If reproduction is intermittent, quantify frequency and preserve passing comparisons. Escalate based on risk and evidence, not tone, while remaining open to a test or environment fault.
Q: How do you handle a flaky payment test?
Quarantine only when ownership, visibility, and a repair deadline exist. Classify the cause using timing, state, dependency, data, environment, or assertion evidence instead of adding retries immediately. Replace sleeps with observable conditions and isolate shared accounts or balances. Track recurrence and restore the test only after repeated clean runs under representative load.
10. airwallex qa sdet interview questions: Final Preparation
Q: What coding problems are useful practice for an Airwallex SDET role?
Practice parsing event streams, enforcing state transitions, deduplicating operations, calculating exact currency totals, paginating APIs, applying retry budgets, and finding reconciliation gaps. Write tests for invalid and concurrent cases, not only the happy path. Explain complexity and failure behavior while coding. Use the language named by the recruiter when one is specified.
Q: How should you approach a payment-system design question?
Clarify the customer journey, consistency need, scale, regions, compliance boundary, and source of truth. Draw synchronous requests separately from asynchronous events, then label idempotency keys, durable stores, queues, and reconciliation jobs. State invariants such as one fulfillment per order and refunds not exceeding captured value. Finish with observability, rollout, and disaster-recovery decisions.
Q: What makes a strong take-home submission?
Provide a short README, deterministic setup, one verification command, clear boundaries, and a focused test pyramid. Handle secrets through environment variables and return diagnostic errors without leaking inputs. Include a few high-value negative cases and explain omissions as deliberate trade-offs. Reviewers should be able to run the project without guessing.
Q: What questions should you ask the interviewers?
Ask which customer promise the team owns, where quality risk concentrates, and how production incidents influence test strategy. Explore sandbox fidelity, API version migration, event observability, release authority, and the balance between embedded quality and specialist roles. Ask what success after six months looks like. Specific questions reveal how you reason about the work, not just the employer.
Q: What is an effective seven-day preparation plan?
Day one maps the role and your evidence; day two models payments and webhooks; day three covers payouts, FX, and reconciliation. Use day four for coding and SQL, day five for issuing, platform isolation, security, and reliability, and day six for behavioral stories. On day seven, run a timed mock with follow-up questions and revise weak explanations. Practice aloud instead of memorizing this wording.
How Interviewers Grade Your Answers
| Signal | Weak answer | Strong answer |
|---|---|---|
| Domain model | Treats payment as pass or fail | Separates intent, attempt, capture, settlement, refund, and late failure |
| Test design | Lists generic positive and negative cases | Selects boundaries, races, invariants, and customer-visible recovery |
| Coding | Produces an untested happy path | Uses clear interfaces, exact data handling, tests, and diagnostic errors |
| Distributed reasoning | Assumes immediate ordered delivery | Plans for timeout, duplication, reordering, partial failure, and convergence |
| Security | Mentions encryption broadly | Identifies secrets, account context, signed bytes, authorization, and redaction |
| Communication | Recites tools and terminology | States assumptions, risk, evidence, trade-off, and decision concisely |
| Ownership | Stops when the test passes | Connects detection, containment, reconciliation, prevention, and learning |
A senior answer changes altitude deliberately. It can explain the customer outcome, then descend into an API field, state transition, SQL check, or telemetry signal without losing the original risk. When information is missing, declare the assumption and describe how your strategy changes if it is false.
Common Mistakes
- Claiming one fixed interview process for every Airwallex role or location.
- Treating an HTTP success, redirect,
SENT, or evenPAIDas universally final. - Creating a new idempotency key when retrying the same ambiguous operation.
- Modeling a PaymentIntent and every PaymentAttempt as unrelated orders.
- Parsing and re-serializing a webhook body before HMAC verification.
- Assuming webhook delivery is unique, ordered, or immediate.
- Using floating-point arithmetic without matching endpoint currency rules.
- Running every scenario through a browser while neglecting service states and contracts.
- Sharing fixed accounts, balances, beneficiaries, or order IDs across parallel tests.
- Logging bearer tokens, card data, webhook bodies, or personal information in CI.
- Giving a security or fault-injection plan without authorization and stop conditions.
- Quoting invented latency targets, failure rates, or interview stages.
- Describing automation volume without a release decision or customer outcome.
- Ending incident recovery when new traffic succeeds without reconciling old state.
Conclusion
Airwallex qa sdet interview questions reward candidates who connect financial-domain accuracy with executable engineering. Prepare payment state, safe retries, webhooks, transfers, FX, issuing, connected-account isolation, security, performance, SQL, and incident reasoning as one coherent quality system.
Choose five prompts, answer each in two minutes, and let a partner challenge your assumptions. Then use API error and negative testing to deepen the weakest scenario and repeat the mock with evidence from your own work.
Interview Questions and Answers
Why is HTTP 200 not enough to prove an Airwallex payment succeeded?
HTTP 200 proves a successful protocol exchange, not the final financial state. The PaymentIntent can require customer action, remain pending, undergo review, or require capture. I correlate the response with authoritative state, webhook evidence, the internal order, and later retrieval before fulfillment.
How would you retry a timed-out PaymentIntent creation?
I treat the outcome as unknown because the first request may have committed. I retry the same operation with its original UUID `request_id`, bounded backoff, and no new merchant order. Retrieval, webhook evidence, and reconciliation establish whether exactly one intent exists.
How do you test duplicate Airwallex webhooks?
I replay the identical stable event ID before and after a consumer restart. A durable unique constraint or inbox pattern must leave one order transition, notification, and ledger mutation. A separate valid event for the same resource must still be processed.
How do you verify an Airwallex webhook signature?
I concatenate the exact `x-timestamp` string with the untouched raw JSON body and calculate an HMAC-SHA256 hex digest using the subscription secret. I compare signatures safely, then enforce an explicit timestamp tolerance. Parsing occurs only after verification.
How would you test manual capture?
I prove authorization reaches `REQUIRES_CAPTURE` without fulfillment, then cover full, partial, repeated, excessive, late, and concurrent capture. Captured value must never exceed authorized value. I verify the resulting transaction and event rather than trusting one API response.
How would you test a payout that can fail after PAID?
I keep monitoring the transfer lifecycle after the paid event because a clearing system or recipient bank can reject it later. Tests inject the late failure, verify customer messaging and returned funds or fees, and exercise remediation. Reconciliation must classify the reversal without creating another uncontrolled payout.
How do you test connected-account isolation?
I create authorized resources in two controlled accounts and attempt cross-account access through APIs, jobs, webhooks, reports, caches, and support views. Incorrect or missing account context must fail without revealing resource existence. Positive tests also prove each tenant can reach its own data.
What should an Airwallex API contract suite cover?
It covers authentication, scope, required fields, types, enums, precision, currency, identifier boundaries, version headers, safe errors, and forward-compatible optional data. Schema checks catch structural drift, while semantic tests protect state and money invariants. I migrate date-based versions through replay and comparison before rollout.
How would you test card spending controls?
I exercise amount and period boundaries with merchant category, currency, channel, location, and card status combinations. Parallel authorizations must not consume the same remaining allowance twice. Each decision should appear consistently in transaction state, wallet effect, webhook, and audit evidence.
How do you investigate a paid provider record with an unpaid internal order?
I build a single correlated timeline across payment creation, attempt, webhook delivery, queue handling, database transaction, and fulfillment. A passing comparison helps isolate signature, dedupe, routing, state, or persistence faults. After containment, I replay safely and reconcile every affected order.
What should a fintech performance test report?
It defines workload, geography, connection behavior, payment-method mix, authentication reuse, payload size, and dependency conditions. Results include percentiles, throughput, errors, saturation, and asynchronous completion lag. Generator and downstream limits are validated before blaming the service under test.
When would you block a financial-platform release?
I block when reproducible evidence exceeds an agreed threshold for customer harm, financial correctness, security, compliance, or recoverability and mitigation is insufficient. I show affected scope, the smallest reproduction, rollback readiness, and safer alternatives. The decision remains evidence-led and shared with accountable stakeholders.
Frequently Asked Questions
What is the Airwallex QA or SDET interview process in 2026?
The sequence depends on the team, level, location, and current hiring plan. Use the job description and recruiter guidance as the source of truth, and prepare for product context, test design, debugging, technical depth, behavioral evidence, and coding where the role requires it.
What should I study for an Airwallex QA interview?
Study payment lifecycles, PaymentIntents and PaymentAttempts, webhooks, API contracts, idempotency, payouts, FX, issuing, reconciliation, and account isolation. Add security, reliability, observability, and behavioral stories that match the advertised product area.
Do Airwallex SDET interviews require coding?
Requirements vary, so confirm the format and language with the recruiter. SDET candidates should be ready to write tested code for state transitions, event processing, exact money rules, API clients, retries, pagination, and data reconciliation.
How do I prepare for payment API testing questions?
Model the complete business lifecycle rather than checking only status codes. Practice authorization, customer action, capture, cancellation, refund, settlement, disputes, duplicate requests, asynchronous events, and ambiguous failures with explicit invariants.
Which Airwallex API concepts are most important for QA?
Understand access-token reuse, scoped credentials, date-based API versions, `request_id` idempotency, PaymentIntent state, stable webhook event IDs, raw-body signature verification, and account context. Know which observation proves transport success and which proves a financial result.
How should I answer Airwallex behavioral questions?
Use a specific situation, the risk or decision you owned, evidence you gathered, action you took, and the outcome. Include the trade-off and explain what changed in your engineering practice afterward.
Are these actual leaked Airwallex interview questions?
No. They are representative preparation prompts derived from public product documentation and common QA and SDET competencies, not confidential interview material or a guaranteed question list.