Skip to content

feat(ramps-controller): return SEPA deposit instructions for EUR autoramps - #11397

Draft
wenfix wants to merge 3 commits into
mainfrom
tram-4385
Draft

wenfix wants to merge 3 commits into
mainfrom
tram-4385

Conversation

@wenfix

@wenfix wenfix commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Explanation

EUR autoramps previously had no deposit instructions: AutorampDepositInstructions only covered PIX and US bank rails, and NeoBankService.getDepositInstructions ignored the SEPA rail. Clients therefore had no way to show a EUR user how to fund the deposit.

This adds a Sepa variant end to end:

  • Add SepaDepositInstructions and extractSepaDepositInstructions, exported from the package, reading the IBAN and optional BIC, account holder, bank name, and bank address from the autoramp's SEPA deposit rail.
  • NeoBankService.getDepositInstructions now falls back to the SEPA rail after the PIX and US bank rails and returns { type: 'Sepa', ... }.
  • Reuse the SEPA extractor when labelling depositRailsSummary.currency, so the summary and the instructions agree.
  • getMusdAutorampDepositRailReadiness now requires the sepa rail for EUR. It does not require sepa_thirdparty, because neobank-proxy falls back to a first-party autoramp when that rail is not Active.
  • SEPA results also carry the autoramp's inbound_payment_reference as paymentReference when MoonPay uses pay-by-reference, and omit it when the value is absent, null, or empty.

AutorampDepositInstructions gaining a variant is breaking: exhaustive switches on its type must handle Sepa.

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Client PR: MetaMask/metamask-mobile#39383

…ramps

- Add `SepaDepositInstructions` and `extractSepaDepositInstructions`, and
  return `{ type: 'Sepa' }` from `NeoBankService.getDepositInstructions`
  after the PIX and US bank rails.
- Reuse the SEPA extractor when labelling `depositRailsSummary.currency`.
- Require only the `sepa` rail for EUR in
  `getMusdAutorampDepositRailReadiness`; the proxy falls back to a
  first-party autoramp when `sepa_thirdparty` is not Active.
…tructions

Carry the autoramp's `inbound_payment_reference` through as `paymentReference` on `SepaDepositInstructions` when MoonPay uses pay-by-reference, and omit it when the value is missing, null, or empty.
@wenfix

wenfix commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-previews

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@11.2.0-preview-9dfb538be
@metamask-previews/accounts-controller@40.1.0-preview-9dfb538be
@metamask-previews/address-book-controller@8.0.0-preview-9dfb538be
@metamask-previews/advanced-chart-core@1.1.0-preview-9dfb538be
@metamask-previews/ai-controllers@2.0.0-preview-9dfb538be
@metamask-previews/analytics-controller@4.2.0-preview-9dfb538be
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-9dfb538be
@metamask-previews/announcement-controller@9.0.0-preview-9dfb538be
@metamask-previews/app-metadata-controller@3.0.0-preview-9dfb538be
@metamask-previews/approval-controller@10.0.0-preview-9dfb538be
@metamask-previews/assets-controller@20.3.0-preview-9dfb538be
@metamask-previews/assets-controllers@113.3.0-preview-9dfb538be
@metamask-previews/authenticated-user-storage@4.1.0-preview-9dfb538be
@metamask-previews/base-controller@10.1.0-preview-9dfb538be
@metamask-previews/base-data-service@2.1.0-preview-9dfb538be
@metamask-previews/bitcoin-regtest-up@2.0.0-preview-9dfb538be
@metamask-previews/bridge-controller@83.1.3-preview-9dfb538be
@metamask-previews/bridge-status-controller@78.0.1-preview-9dfb538be
@metamask-previews/build-utils@4.0.0-preview-9dfb538be
@metamask-previews/byte-utils@0.1.0-preview-9dfb538be
@metamask-previews/chain-agnostic-permission@2.1.0-preview-9dfb538be
@metamask-previews/chomp-api-service@7.0.0-preview-9dfb538be
@metamask-previews/claims-controller@1.1.0-preview-9dfb538be
@metamask-previews/client-controller@2.0.0-preview-9dfb538be
@metamask-previews/client-utils@3.1.1-preview-9dfb538be
@metamask-previews/compliance-controller@3.0.0-preview-9dfb538be
@metamask-previews/composable-controller@13.0.0-preview-9dfb538be
@metamask-previews/config-registry-controller@5.0.0-preview-9dfb538be
@metamask-previews/connectivity-controller@1.0.0-preview-9dfb538be
@metamask-previews/controller-utils@13.0.0-preview-9dfb538be
@metamask-previews/core-backend@14.0.0-preview-9dfb538be
@metamask-previews/cryptography@1.1.2-preview-9dfb538be
@metamask-previews/delegation-controller@4.0.0-preview-9dfb538be
@metamask-previews/earn-controller@13.0.2-preview-9dfb538be
@metamask-previews/eip-5792-middleware@4.1.0-preview-9dfb538be
@metamask-previews/eip-7702-internal-rpc-middleware@1.0.0-preview-9dfb538be
@metamask-previews/eip1193-permission-middleware@3.0.0-preview-9dfb538be
@metamask-previews/error-utils@0.1.0-preview-9dfb538be
@metamask-previews/eth-block-tracker@16.0.0-preview-9dfb538be
@metamask-previews/eth-json-rpc-middleware@26.0.0-preview-9dfb538be
@metamask-previews/eth-json-rpc-provider@7.0.0-preview-9dfb538be
@metamask-previews/eth-sig-util@9.0.0-preview-9dfb538be
@metamask-previews/foundryup@2.0.0-preview-9dfb538be
@metamask-previews/gas-fee-controller@27.1.0-preview-9dfb538be
@metamask-previews/gator-permissions-controller@6.1.0-preview-9dfb538be
@metamask-previews/geolocation-controller@2.0.0-preview-9dfb538be
@metamask-previews/java-tron-up@2.0.0-preview-9dfb538be
@metamask-previews/json-rpc-engine@11.0.0-preview-9dfb538be
@metamask-previews/json-rpc-middleware-stream@9.0.0-preview-9dfb538be
@metamask-previews/key-tree@10.1.1-preview-9dfb538be
@metamask-previews/keyring-controller@28.2.0-preview-9dfb538be
@metamask-previews/kyc-controller@0.16.0-preview-9dfb538be
@metamask-previews/local-node-utils@2.0.0-preview-9dfb538be
@metamask-previews/logging-controller@10.0.0-preview-9dfb538be
@metamask-previews/marketing-consent-controller@1.1.0-preview-9dfb538be
@metamask-previews/message-manager@15.0.0-preview-9dfb538be
@metamask-previews/messenger@3.0.0-preview-9dfb538be
@metamask-previews/messenger-cli@1.0.0-preview-9dfb538be
@metamask-previews/mfa-recovery-controller@0.0.0-preview-9dfb538be
@metamask-previews/money-account-api-data-service@2.3.1-preview-9dfb538be
@metamask-previews/money-account-balance-service@3.1.2-preview-9dfb538be
@metamask-previews/money-account-controller@3.0.0-preview-9dfb538be
@metamask-previews/money-account-lifecycle-controller@0.0.0-preview-9dfb538be
@metamask-previews/money-account-mfa-whitelist@0.2.0-preview-9dfb538be
@metamask-previews/money-account-upgrade-controller@6.0.0-preview-9dfb538be
@metamask-previews/money-account-utils@2.2.0-preview-9dfb538be
@metamask-previews/multichain-account-service@14.1.0-preview-9dfb538be
@metamask-previews/multichain-api-middleware@5.0.0-preview-9dfb538be
@metamask-previews/multichain-network-controller@4.1.0-preview-9dfb538be
@metamask-previews/multichain-transactions-controller@8.0.0-preview-9dfb538be
@metamask-previews/name-controller@10.0.0-preview-9dfb538be
@metamask-previews/network-connection-banner-controller@1.0.0-preview-9dfb538be
@metamask-previews/network-controller@37.1.1-preview-9dfb538be
@metamask-previews/network-enablement-controller@7.1.0-preview-9dfb538be
@metamask-previews/node-utils@0.1.0-preview-9dfb538be
@metamask-previews/notification-services-controller@30.1.0-preview-9dfb538be
@metamask-previews/passkey-controller@4.1.0-preview-9dfb538be
@metamask-previews/permission-controller@14.1.0-preview-9dfb538be
@metamask-previews/permission-log-controller@6.0.0-preview-9dfb538be
@metamask-previews/perps-controller@22.3.0-preview-9dfb538be
@metamask-previews/phishing-controller@18.3.0-preview-9dfb538be
@metamask-previews/platform-api-docs@0.2.1-preview-9dfb538be
@metamask-previews/polling-controller@17.0.0-preview-9dfb538be
@metamask-previews/preferences-controller@24.0.0-preview-9dfb538be
@metamask-previews/profile-controller@2.0.0-preview-9dfb538be
@metamask-previews/profile-metrics-controller@5.2.1-preview-9dfb538be
@metamask-previews/profile-sync-controller@36.0.0-preview-9dfb538be
@metamask-previews/ramps-controller@29.0.0-preview-9dfb538be
@metamask-previews/rate-limit-controller@8.0.0-preview-9dfb538be
@metamask-previews/react-data-query@2.0.0-preview-9dfb538be
@metamask-previews/remote-feature-flag-controller@7.0.0-preview-9dfb538be
@metamask-previews/sample-controllers@6.0.0-preview-9dfb538be
@metamask-previews/seedless-onboarding-controller@12.0.0-preview-9dfb538be
@metamask-previews/selected-network-controller@27.0.0-preview-9dfb538be
@metamask-previews/sentinel-api-service@2.1.0-preview-9dfb538be
@metamask-previews/shield-controller@7.1.1-preview-9dfb538be
@metamask-previews/signature-controller@40.0.0-preview-9dfb538be
@metamask-previews/smart-transactions-controller@27.2.1-preview-9dfb538be
@metamask-previews/snap-account-service@4.0.0-preview-9dfb538be
@metamask-previews/social-controllers@3.19.0-preview-9dfb538be
@metamask-previews/solana-test-validator-up@2.0.0-preview-9dfb538be
@metamask-previews/stellar-quickstart-up@0.0.0-preview-9dfb538be
@metamask-previews/storage-service@2.0.0-preview-9dfb538be
@metamask-previews/subscription-controller@15.2.0-preview-9dfb538be
@metamask-previews/transaction-controller@73.1.1-preview-9dfb538be
@metamask-previews/transaction-pay-controller@31.0.0-preview-9dfb538be
@metamask-previews/transaction-pay-middleware@2.0.1-preview-9dfb538be
@metamask-previews/type-utils@0.1.0-preview-9dfb538be
@metamask-previews/user-operation-controller@42.1.0-preview-9dfb538be
@metamask-previews/utils@12.0.1-preview-9dfb538be
@metamask-previews/wallet@21.0.0-preview-9dfb538be
@metamask-previews/watch-only-account-service@0.1.0-preview-9dfb538be

This branch has not been deployed

No deployments
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