Initiative · Integrations QC

Zero trust.
Total coverage.

Every provider parameter, every allowed value, every payment scenario — mapped to a test case. Integrations QC is the ledger that proves, line by line, which part of each integration we've actually verified. Scaling ~500 tests per provider to 2,000+ — mostly E2E, all traceable.

“We don't assume the provider does what the spec says. We prove it — parameter by parameter, value by value.”

Traceability · live matrix

33 providers. 427 requirements on the first one alone.

Dashboard on the left: every PSP we integrate with, coverage at a glance. Drill on the right: requirement-by-requirement status, with the test case that proves each covered line.

Integrations QC · traceability matrix
33 PSPs·28 ready·5 pending
providers
adyen-hw
ready
85.2%942 tests
checkout-hw
ready
89.2%1108 tests
worldpay-hw
ready
88.1%1012 tests
braintree-hw
ready
82.3%840 tests
bamboo
ready
78.5%718 tests
emerchantpay
ready
73.8%612 tests
ebanx
ready
71.4%584 tests
dlocal-hw
pending
0 tests
inspecting · coverage matrix
adyen-hw
85.2%
364 / 427 requirements
Operations
100%14/14
Internal Request
100%4/4
Internal Response
84%27/32
Public Request
86%115/134
Public Response
85%28/33
Scenarios
84%174/208
Feature
100%2/2
req idrequirement · test casetype
source · OpenAPI + spec @tagsrebuilds on every merge
The four pillars

Parameters. Reports. Angles. Numbers.

Four practices that hold the matrix up. Each one is boring on its own — together they're the difference between "it passed sandbox" and "we've audited every path in production."

01 · parameter validation
Every parameter, its own ledger row.

For each field we send a provider: business purpose, allowed values, expected behavior, financial and functional impact. The matrix guarantees every relevant value has at least one test case behind it.

02 · unified reporting
One report per provider, per launch.

Standardized per test case: auto or manual · sandbox or production · untestable (with justification) · not applicable (explicit, not missing). Evidence attached. No ambiguous rows.

03 · four coverage angles
Happy. Negative. Edge. Conditional.

For every parameter we ask four questions. Four tests, same matrix. A row stays red until all four answers are green — or the row is explicitly marked untestable with a reason.

04 · 500 → 2,000+ tests
Exhaustiveness has a number.

Each integration grows from ~500 tests today to 2,000+ — mostly E2E against sandbox + production. Not a vanity metric: every new test closes a specific row on the matrix that was open before.

Why zero trust

From trusting the spec to auditing every line of it.

Provider specs are long, incidents are expensive, and “it worked in sandbox” has cost us too many edges. Integrations QC treats every parameter as an assertion we own — and every open row on the matrix as a release blocker until the test exists or the row is marked explicitly untestable.

01
The matrix is the contract.

A provider integration ships with a coverage report, not a README. If a row is missing, the integration is not ready — regardless of what the sandbox says.

02
Untestable is a first-class answer.

Some cases genuinely can't be reproduced (a provider-side fraud flag, a chargeback callback). They get marked with a reason and stay on the matrix — never silently dropped.

03
The report rebuilds on every merge.

Parameters come from the provider OpenAPI. Test-to-requirement links live in the spec files as @tags (@REQ-PC-001, @OP-012). The matrix is a report, not a spreadsheet anyone curates by hand.

04
Evidence lives with the row.

Each covered row carries the order ID, the environment (sandbox / production), the run timestamp. An auditor can trace any line to a real transaction.

"But wait —"

Three honest objections. Three honest answers.

Isn't this just integration testing?

answer

Integration tests prove the suite passes. The matrix proves WHAT the suite covers — requirement by requirement. It's the audit trail on top: we can say “every apple-pay × 3DS combination is green” with numbers, not hope.

2,000+ tests per integration — isn't that overkill?

answer

A PSP routes millions per day. A missed edge is priced in GMV leak, not engineer-days. Exhaustive coverage is cheaper than one production incident on a retry path nobody tested — the one Monitors catches 42 minutes after it starts leaking.

Who maintains the traceability matrix?

answer

Nobody, by hand. Parameters are generated from the provider OpenAPI. Test-to-requirement links are @tags asserted in the spec files themselves. The matrix is rebuilt on every merge — a report, not a wiki.