Document the blocked partner reporting APIs (nexchange, Simplex, Bridgeless) - #231
Open
j0ntz wants to merge 1 commit into
Open
Document the blocked partner reporting APIs (nexchange, Simplex, Bridgeless)#231j0ntz wants to merge 1 commit into
j0ntz wants to merge 1 commit into
Conversation
nexchange, Simplex and Bridgeless all lack a working reporting plugin, and none of them is blocked on work this repo can do alone. Record what each one needs, with the live evidence behind it, so the investigation is not repeated. nexchange is credential-scoped: its key authenticates but returns 403 on the reporting resource. Simplex needs a server-side key that only their support issues, and the shipped plugin also targets a retired host and the wrong auth header. Bridgeless has no key at all, but its public API carries no timestamp, no referral filter and no resumable cursor, which is what makes a plugin infeasible rather than merely expensive.
This was referenced Jul 31, 2026
Open
j0ntz
marked this pull request as ready for review
July 31, 2026 21:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
noneDescription
Asana task
The blocked half of the umbrella task
reports-server: Umbrella,
split out so it cannot hold up
#228, which carries the
providers whose keys are known to work.
Tracked by
reports-server: unblock nexchange, Simplex and Bridgeless reporting.
This adds
docs/blocked-partner-reporting.mdand no plugin code. That is thefinding, not a shortcut: nexchange, Simplex and Bridgeless each need an external
action before any code is worth writing, and each of those was established by a
live request against the partner's own API rather than from documentation. The
doc records the request, the exact response, and the resulting ask, so the next
person does not repeat the investigation.
Why no code
nexchange is not in this repo on purpose.
#229 already carries a
port descended from the same origin as ours
(#217): the test files
are byte-identical and the plugins differ by 96 diff lines. Shipping a second
copy would only conflict with it. Two fixes ours had that #229 lacks are written
up in the doc and posted on #229, so neither is lost. The real blocker is that
the key in
env.jsonauthenticates but returns403 API key is not authorised for this resource, which is a scope problem no code change fixes.Simplex is pointed at a retired host with the wrong auth header, and both are
now pinned down: the current API is
/reporting/v1/paymentsand it wantsAuthorization: ApiKey <key>, notX-API-KEY. The sandbox host's error textseparates a bad format from a bad key, which is what makes the scheme
identifiable without a valid credential. The plugin is deliberately not rewritten
because the response body has never been seen, and writing cleaners for an
unobserved payload would be inventing the schema.
Bridgeless needs no key at all, and aggregate commission is already readable.
Per-order reporting is blocked by the API's shape: records carry no timestamp of
any kind, so
StandardTx.isoDatecannot be filled; there is no server-sidereferral filter, so attribution means scanning all 100,210 records; and the store
is hash-ordered rather than append-ordered, so there is no cursor to resume from
and every run is a full rescan. A 20,000 record sample contained exactly one
record with
referral_id == 2. Those compound into infeasible rather than merelyexpensive.
Testing
Docs and CHANGELOG only, no runtime code.
verify-repo.sh --base origin/masterpasses every step except
npm test, which fails identically on unmodifiedmaster: the suite imports from the gitignored../lib/util. That break is what#228 fixes in its first
commit, so this branch goes green once #228 lands.
The claims in the doc were each verified by a live request; the commands are in
the doc itself and are reproducible without any Edge credential except the
nexchange key already in
env.json.