Skip to content

Treat pending Monerium profiles as approved on the sandbox - #1434

Merged
ebma merged 4 commits into
stagingfrom
feat/monerium-sandbox-approve-pending
Oct 19, 2026
Merged

ebma merged 4 commits into
stagingfrom
feat/monerium-sandbox-approve-pending

Conversation

@ebma

@ebma ebma commented Oct 19, 2026

Copy link
Copy Markdown
Member

Why

The B2B keeper deploys a client's contract for a partner registration only once Monerium reports the profile as approved. Monerium's sandbox has not approved any white-label profile since our test companies were submitted on 7 Oct, and Monerium has not explained how sandbox approval works. That blocks the partner's end-to-end registration test on the sandbox. Everything after the approval gate already works for a pending profile: it can link addresses and gets an IBAN within seconds (found on 8 Oct).

What changes

  • In the sandbox only (SANDBOX_ENABLED=true), the registration processor treats a profile Monerium reports as pending as approved, and logs that once per registration. Created, incomplete and in-review profiles still wait, rejected and closed ones are still rejected, and every other environment keeps waiting for approved. The app already refuses to boot with SANDBOX_ENABLED=true unless DEPLOYMENT_ENV=sandbox.
  • Nothing else in the B2B flow checks the approval (request validation, provisioning, onboarding, activation, deposits, refunds). Refund payouts still need Monerium's real approval: a refused redeem parks the refund in recovery_failed, as before. The consumer onramp's own approval check is untouched.
  • No new setting: it follows the existing sandbox-only auto-activation, which keys on the same flag.

Docs

Security spec invariant 12 (plus a checklist line), the architecture doc's registration paragraph (which also corrects "outside production the account activates" to the sandbox-only behaviour the code, spec and ADR-0007 describe), a dated note on ADR-0007 decision 3, and the partner page's sandbox specifics, integration steps and waiting-reason table, with the matching OpenAPI description. The wire-contract snapshot is unchanged.

Tests

registration.test.ts: a pending profile in the sandbox deploys, maps and logs once (fails on the old code); outside the sandbox a pending profile waits, and in the sandbox created, incomplete and in-review profiles wait (guards against a broader override; checked by mutation). Full apps/api suite 2314 pass, 0 fail; typecheck, verify, wire-contract, docs check and the api build pass.

Both this PR and #1429 edit the B2B security spec and architecture doc in different paragraphs; whichever merges second may need a merge from staging.

ebma added 3 commits October 19, 2026 12:25
Monerium's sandbox has not approved any white-label profile in 12 days,
which blocks the partner's end-to-end registration test. A pending
profile can already link addresses and receive an IBAN, so the keeper's
approval gate was the only blocker. Keyed on SANDBOX_ENABLED like the
sandbox auto-activation; production keeps waiting for approved.
The security spec, the architecture doc and ADR-0007 said every partner
registration waits for an approved profile. The sandbox now proceeds on
pending, so the spec carries the scope, the approved KYB mirror and the
refund caveat, and the architecture doc's auto-activation scope matches
the code (sandbox only, not everything outside production).
The sandbox walkthrough said the provider approves each test profile
before Vortex deploys anything. Partners testing registrations now see a
pending profile proceed, and need to know that created, incomplete and
in-review profiles still wait and that payouts can be refused until the
provider approves the profile.
@netlify

netlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for vortex-sandbox ready!

Name Link
🔨 Latest commit 9f314b1
🔍 Latest deploy log https://app.netlify.com/projects/vortex-sandbox/deploys/6ad6064b8ccbd92ef301335b
😎 Deploy Preview https://deploy-preview-1434--vortex-sandbox.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for vortexfi canceled.

Name Link
🔨 Latest commit 9f314b1
🔍 Latest deploy log https://app.netlify.com/projects/vortexfi/deploys/6ad6064b4e3190effb4036b4

@netlify

netlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for vrtx-dashboard canceled.

Name Link
🔨 Latest commit 9f314b1
🔍 Latest deploy log https://app.netlify.com/projects/vrtx-dashboard/deploys/6ad6064bf713aaeeb9c17ea1

…box-approve-pending

# Conflicts:
#	docs/api/pages/14-managed-profiles.md
@ebma
ebma merged commit 9900d15 into staging Oct 19, 2026
6 checks passed
@ebma
ebma deleted the feat/monerium-sandbox-approve-pending branch October 19, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant