Replaced mollie
All checks were successful
Deploy / build-deploy (push) Successful in 3m47s

This commit is contained in:
Jorijn van der Graaf 2026-08-20 20:15:47 +02:00
commit df91762271
29 changed files with 3079 additions and 838 deletions

View file

@ -361,10 +361,34 @@ export Financials LoadFinancials(std::string_view json) {
// text: the renderer should not know what a chain id or a token decimal is, any
// more than it knows where ECB rates come from.
export struct OrderCryptoPay {
std::string address; // where the money goes, "0x…"
std::string address; // where the money goes: "0x…", or an IBAN
std::string amount; // decimal EURC amount ("570.43") — equals the
// euro total; EURC is euro-denominated at par
std::int64_t minutesLeft = 0; // until the window closes; <= 0 = closed
// ── bank transfer instead of on-chain ─────────────────────────────
//
// Both live rails are self-hosted, so both render instructions here rather
// than a button. Non-empty `beneficiary` is what marks this a bank
// transfer: `address` is then an IBAN, `chains` is empty, and the copy
// must not mention networks or tokens.
//
// The name is not decoration. Since 2025-10-09 every euro-area transfer is
// name-checked against the IBAN by Verification of Payee, and the payer
// gets a mismatch warning mid-payment if what we printed is not what the
// bank holds. Printing a friendly trading name here would scare buyers off
// at the last step, so this carries the bank's own spelling.
std::string beneficiary;
// The structured ISO 11649 form of the reference. Quoted alongside the
// short one because the payer's bank validates its check digits and
// rejects a mistyped one before the money leaves — which is what makes
// unattended matching on our side safe.
std::string structuredReference;
// Shown only when configured, and labelled as the field a payer sending
// from OUTSIDE SEPA needs. An IBAN alone has been sufficient within SEPA
// since 2016, so putting a BIC in front of a Dutch buyer is one more box
// to fill and one more thing to mistype.
std::string bic;
// The transfer is visible on the network but not yet in a finalized
// block. Display-only: the buyer whose wallet said "success" needs to
// hear "we see it, it is finalizing" or their next step is a support