Betalinger
Betalinger med Wealth Reader
Wealth Reader gør det muligt at forberede en uforanderlig betalingsordre fra backend og gennemføre bankens godkendelse i en særskilt, sikker widget (PSD2 / PIS - Payment Initiation Services). API-adgangsnøglen, følsomme modtagerkonti og interne forbindelsesoplysninger sendes aldrig til browseren.
Den deterministiske sandbox gør det muligt at integrere uden at flytte rigtige penge, men den aktiveres ikke med en parameter: Den er en separat installation med sin egen basis-URL og adgangsnøgle, som Wealth Reader stiller til rådighed efter anmodning (se Sikkerhed og test). I sandbox returnerer profile-institutions ét simuleret institut. Feltet expected_mode skifter ikke miljø: Det kontrollerer kun, at du bruger det forventede miljø, og returnerer 409 payment_mode_mismatch, hvis det ikke stemmer.
At et bankinstitut er tilgængeligt til aggregering, betyder ikke, at det også er tilgængeligt til betalingsinitiering. I produktion dækker Wealth Readers institutkatalog Spanien og hele Europa.
Arkitektur i to trin
Betalingsintegrationen adskiller ansvarsområderne strengt i to trin:
sequenceDiagram autonumber actor Usuario as Bruger participant Front as Frontend (Forhandler) participant Back as Backend (Forhandler) participant API as Wealth Reader API participant Widget as Widget Payments participant Banco as Bankinstitut (SCA) Note over Back,API: Forberedende trin (kun administrerede profiler) Back->>API: POST /payments/?action=profile-institutions API-->>Back: Profilkatalog (institution_code) Note over Back,API: Trin 1: Opret uforanderlig betalingsintention (Server-to-Server) Back->>API: POST /payments/?action=create (med X-API-Key og Idempotency-Key) API-->>Back: 201 med payment.id + kortlivet payment.widget.token Note over Front,Widget: Trin 2: Indlæs widget og godkend (Browser) Back->>Front: Sender payment.id og payment.widget.token Front->>Widget: WealthReaderPayments.mount(...) eller load-payments.js Widget->>Usuario: Viser uforanderligt institut, beløb og betalingstekst Usuario->>Widget: Godkender betalingen Widget->>Banco: Omdirigering / App to App (SCA) Banco->>API: SCA-retur til Wealth Readers callback API-->>Widget: Teknisk bekræftelse af godkendelsen Note over Back,API: Afstemning og finansiel bekræftelse loop Indtil en endelig status Back->>API: POST /payments/?action=status API-->>Back: payment_status: not_initiated | pending | settled | ... end
- Trin 1 (Sikker backend): Din server opretter en betalingsintention (
POST /payments/?action=create) med dinX-API-Key, enIdempotency-KeyogContent-Type: application/json. Dette kald fastlåser beløbet (amount_minor, i cent), valutaen (currency, i øjeblikket kunEUR), modtageren (beneficiary.nameogbeneficiary.iban), teksten på kontoudtoget (reference), din interne reference (customer_reference) og den tilladte weboprindelse (allowed_origin). Disse seks felter er obligatoriske, og anmodningens indhold følger en streng positivliste: Ethvert ukendt felt medfører422 invalid_request. - Svar:
201med{"success": true, "payment": {…}}— eller200, hvis det er en idempotent gentagelse. Betalingsintentionens identifikator findes ipayment.id, og widgettens kortlivede token findes ipayment.widget.token. - Trin 2 (Forhandlerens frontend): Browseren indlæser widgetten med det officielle script
load-payments.jseller funktionenWealthReaderPayments.mount()og sender udelukkendepayment.idogpayment.widget.token. Brugeren vælger sin bank (hvis den ikke allerede er valgt i betalingsintentionen) og gennemfører stærk kundeautentifikation (SCA) i bankens grænseflade. - Finansiel bekræftelse: Din backend henter status med
POST /payments/?action=status, hvor anmodningens indhold er præcis{"payment_intent_id": "<id>"}. Der er ingen webhook: Status forespørges løbende, indtil en endelig status nås.
To betalingsmodeller
Wealth Reader understøtter to modeller afhængigt af virksomhedens behov:
- Standardintegration for forhandlere (Egen modtager):
- Forhandleren vælger frit modtagerens navn og IBAN, beløb, valuta (
EUR), betalingstekst og ordrereference. - Med
allowed_institution_codeskan forhandleren begrænse de banker, brugeren kan vælge, eller tillade hele kataloget.
- Forhandleren vælger frit modtagerens navn og IBAN, beløb, valuta (
- Administrerede profiler (som
cruz_roja_demo):- Udviklet til donationer og offentlige demonstrationer.
- Serveren fastlægger de officielle modtagerkonti, så pengene kun kan sendes til velgørenhedsorganisationen (for eksempel Spansk Røde Kors med beløb mellem
0,01 EURog1,00 EUR).
Fælles katalog over bankinstitutter
Wealth Reader tilbyder et fælles katalog over europæiske institutter, der understøtter betalingsinitiering via PSD2, gennem:
GET https://api.wealthreader.com/payments/entities/?country=ES
Det giver en bankliste med standardiserede navne, logoer, understøttede overførselsmetoder og tekniske krav (såsom behovet for at bede betaleren om debitors IBAN). Filtrene country, search (alias q), code, payment_method, limit og offset understøttes.
Dette endpoint er offentligt: Det kræver ikke X-API-Key. Det giver ingen fordel at sende nøglen, og det bruger et kald fra adgangsnøglens kvote.
Brug altid koderne præcis som returneret i code. Ved oprettelse af betalingsintentionen valideres formatet af allowed_institution_codes, men ikke om koderne findes i kataloget: En forkert stavet kode giver ikke fejl ved oprettelsen, men resulterer senere i en tom bankvælger.
interaction_status: completed betyder kun, at den tekniske interaktion på skærmen er afsluttet. Betalingen betragtes først som endeligt afviklet, når payment_status er settled. Mulige værdier for payment_status er not_initiated, pending, settled, rejected, cancelled, expired, failed og unknown; se Status, statusforespørgsler og afstemning.
Adskillelse af ansvarsområder
- Betalingsadgangsnøglen (
X-API-Key) bruges udelukkende fra server til server. Den må aldrig indgå i frontend eller offentlige kodearkiver. - Browseren modtager kun betalingsintentionens identifikator og et kortlivet token, der er bundet til HTTPS-oprindelsen.
- Widgetten kan ikke ændre beløb, valuta, modtager, betalingstekst eller tilladte institutter.
- Lukning af modalen eller widgetten erstatter ikke forespørgslen om finansiel status i backend.
- Betalinger deler hverken adgangsnøgler, tokens eller callbacks med Wealth Readers bankaggregeringsprodukt.
Adgangsnøgler og kvote
Produktet PAYMENTS skal være aktiveret for din betalingsadgangsnøgle; ellers svarer API’et med 403 payments_not_allowed. En manglende eller forkert formateret adgangsnøgle giver 401 invalid_api_key.
Hvert autentificeret kald bruger én enhed af API-nøglens kumulative tæller. Tælleren gælder for hele levetiden, uden tidsvindue og uden automatisk genopfyldning: Når kvoten er opbrugt, svarer alle betalingskald permanent med 429 api_limit_reached, indtil grænsen hæves. Det hjælper hverken at vente eller prøve igen. Hvis du forventer høj trafik — eller en offentlig demonstration, hvor hver sideindlæsning bruger et kald — skal du aftale grænsen med Wealth Reader før offentliggørelsen.
Næste trin
Fortsæt med Integration og widget.