Third-Party Integration Testing Checklist

Modern apps depend on third-party services for payments, email, storage, and more. AI-generated integration code frequently mishandles API errors, breaks when services are slow, and fails to verify webhook signatures. This checklist ensures your integrations work reliably in production.

Last updated: 2026-03-14

API Connection

API credentials are stored securely

Verify that API keys and secrets are stored in environment variables, not hardcoded in the source code or frontend.

API calls succeed with valid credentials

Test each integration endpoint and verify that calls succeed and return expected responses.

API rate limits are respected

Verify that your app does not exceed the third-party service's rate limits during normal usage.

API versioning is explicit

Check that your API calls specify a version to prevent breaking changes when the provider updates their API.

Error Handling

Timeout errors are handled gracefully

Simulate slow third-party responses and verify the app shows a timeout message rather than hanging indefinitely.

Service outages do not crash the app

Simulate a third-party service being down and verify the app degrades gracefully with appropriate fallback behavior.

Rate limit errors trigger retry logic

Trigger rate limit responses and verify the app retries with appropriate backoff rather than failing immediately.

Authentication errors prompt re-authentication

Simulate expired OAuth tokens and verify the app refreshes them or prompts the user to reconnect.

Error messages do not expose API keys

Trigger errors and verify that error messages shown to users do not contain API keys or internal service details.

Webhook Processing

Webhooks are received and processed

Trigger events that send webhooks and verify your app receives and processes them correctly.

Webhook signatures are verified

Check that your app validates webhook signatures to prevent processing forged requests.

Duplicate webhooks are handled idempotently

Send the same webhook twice and verify the app processes it only once without creating duplicate records.

Failed webhook processing is retried or logged

Simulate a processing failure and verify the webhook is retried or logged for manual investigation.

OAuth and Authorization

OAuth flow completes successfully

Connect a third-party service via OAuth and verify the authorization flow completes and the app gains access.

Token refresh works automatically

Wait for an OAuth token to expire and verify the app refreshes it automatically without user intervention.

Disconnecting the integration revokes access

Disconnect a third-party service and verify the OAuth token is revoked and the integration stops functioning.

Scopes are appropriate and minimal

Verify that OAuth requests only ask for the permissions the app actually needs, not broad access.

Frequently Asked Questions

How do I test integrations without hitting real third-party APIs?

Use sandbox or test environments provided by the service. Stripe, Twilio, SendGrid, and most major APIs offer test modes. For services without test environments, consider mocking responses during development.

What should I do when a third-party service goes down?

Design integrations with graceful degradation. Queue failed operations for retry, show users a clear message about temporary unavailability, and ensure the core app continues functioning without the third-party service.

Let human testers run through this checklist for you

Submit your app and our testers will find the bugs you missed. Starting at €15 per test.

Related checklists