Test Cases

Complete all 30 test cases before submitting for integration certification. Use Aerosync Test Banks (MFA, OAuth, Security Question) for all widget tests.

📘

Test cases marked require screen recordings for certification submission.


Category 1: Authentication (TC-01 to TC-06)

IDTest CaseExpected ResultValidation Notes
TC-01Get Aeropay token with valid credentials (scope: merchant, valid api_key, api_secret, merchantId)HTTP 200, token returned with TTL 1800Confirm token is JWT format. Verify expiry handling logic.
TC-02Get Aeropay token with invalid api_secretHTTP 401, AC-101 returnedConfirm your error handler catches and logs AC-101.
TC-03Get Aerosync API token with valid apiKey and apiSecretHTTP 200, token returned with TTL 1800This token is for server-side data API calls — distinct from the widget token.
TC-04Get widget token with valid aeroPassUserUuidHTTP 200, widget JWT and userId returnedConfirm aeroPassUserUuid passed is from your DB, not hardcoded.
TC-05Call GET /accounts with an expired API token (simulate by using a token past its 1800s TTL)HTTP 403, AC-001 returnedVerify your token refresh logic kicks in and retries the call.
TC-06Call GET /accounts with no Authorization headerHTTP 403, AC-001 returnedEnsure all API calls include Authorization: Bearer <token>.

Category 2: Bank Linking (TC-07 to TC-14)

IDTest CaseExpected ResultValidation Notes
TC-07 ★Create new AeroPass user and launch widget — link Aerosync Bank (MFA)Widget renders, user authenticates, onSuccess fires with connectionIdRecord full screen capture for certification. Verify connectionId stored in DB.
TC-08 ★Launch widget for returning user (existing aeroPassUserUuid) — link Aerosync Bank (OAuth)Widget shows returning user experience, OAuth external window opens and closesdeeplink required for mobile. Verify OAuth redirect and closure.
TC-09 ★Launch widget — link Aerosync Bank (MFA Trigger). Credentials: mxuser / challenge / MFA: correctSecurity question displays, user answers correctly, onSuccess firesRecord for certification. Verify no crash on security question page.
TC-10User closes widget without completing bank link (onClose event)onClose fires, no connectionId produced, UI handles gracefullyConfirm no orphaned state in your app. Ensure retry UI is surfaced.
TC-11Launch widget with invalid or expired widget tokenWidget shows error state, onError firesVerify onError handler logs the error. Implement token refresh before retry.
TC-12Launch widget with handleMFA: true but missing jobIdWidget does not launch correctly or onError firesValidate that both jobId and connectionId are present before launching MFA widget.
TC-13Retrieve account details (GET /accounts) after successful bank linkHTTP 200, accountNumber, routingNumber, connectionStatus: "CONNECTED" returnedCheck accountNumberType field. Note canFetchBalance value for job tests.
TC-14Call GET /accounts with an invalid connectionIdHTTP 404, AC-102 returnedVerify error is caught and user sees an appropriate message, not a blank screen.

Category 3: Aggregation Jobs (TC-15 to TC-22)

IDTest CaseExpected ResultValidation Notes
TC-15Create balance refresh job (POST /refresh) and poll to COMPLETEDjobStatus: COMPLETED within ~10–15 seconds, mfaTriggered: falseConfirm polling interval ≤ 3 seconds. Log all intermediate statuses.
TC-16 ★Trigger balance refresh that generates MFA_REQUIRED status, then re-launch MFA widget to completionmfaTriggered: true detected, MFA widget launches, user completes, job advances to COMPLETEDUse Aerosync Bank (MFA) for this test. Record full flow for certification.
TC-17Create transaction history job (POST /transactions) and poll to COMPLETEDjobStatus: COMPLETED, transaction list returned with date, amount, description fieldsVerify at least 1 transaction is returned for the test bank.
TC-18Create identity job (POST /identity) and poll to COMPLETEDjobStatus: COMPLETED, account holder name and address returnedConfirm identity data maps to your internal schema.
TC-19Attempt to create two concurrent identity jobs on the same connectionIdSecond job returns HTTP 409, AC-112 ConflictImplement a job-state guard in your backend to prevent duplicate concurrent jobs.
TC-20Create balance refresh job — simulate timeout by capping at 30 poll attempts without COMPLETEDYour timeout logic fires, user sees error stateVerify timeout does not crash the app. Confirm retry UI is offered to the user.
TC-21Attempt POST /refresh on a manually linked bank accountHTTP 405, AC-107 returnedUse connectionMethod from GET /accounts to detect manual links and skip this call proactively.
TC-22Call GET /job/{jobId} with an invalid jobIdHTTP 404, AC-109 returnedVerify your polling loop exits cleanly on 404 and does not infinite-loop.

Category 4: Data Retrieval (TC-23 to TC-26)

IDTest CaseExpected ResultValidation Notes
TC-23Retrieve balance after COMPLETED refresh job (GET /balance)HTTP 200, current balance amount returnedConfirm response includes both current and available balance if the FI provides both.
TC-24Retrieve transaction history after COMPLETED job (GET /transactions)HTTP 200, array of transaction objects with date, amount, currency, descriptionValidate date formats are ISO 8601. Check for null/empty description handling.
TC-25Retrieve identity data after COMPLETED identity job (GET /identity)HTTP 200, holder name, address, and email returnedConfirm field completeness. Some FIs may omit email — handle gracefully.
TC-26Call GET /balance when canFetchBalance is falseHTTP 400 or empty responseCheck canFetchBalance before calling. Prevents unnecessary job triggers.

Category 5: Edge Cases & Resilience (TC-27 to TC-30)

IDTest CaseExpected ResultValidation Notes
TC-27Simulate connectionExpiry approaching — launch reconnection widget before expiryReconnection widget renders, user re-authenticates, connectionStatus returns to CONNECTEDMonitor connectionExpiry via a background job. Alert your system at the 48-hour threshold.
TC-28Submit MFA answer after MFA session has expired (AC-110)HTTP 405, AC-110 returnedRe-trigger the job and re-launch MFA widget from scratch. Do not attempt to resume the expired session.
TC-29Attempt to get widget token without first creating an AeroPass user (missing aeroPassUserUuid)HTTP 400 or 401 from widget token endpointConfirm your onboarding flow always creates the AeroPass user before any widget launch.
TC-30Trigger a balance job and confirm job.balance webhook received at your endpoint with valid HMAC-SHA256 signatureWebhook received within 30 seconds of job completion, signature validatesUse Aeropay's test webhook endpoint to confirm delivery. Log raw payload + signature for debugging.