Förenklad betalning via webservice i BRP Online

Detta är en funktion för att förenkla för API-utvecklare som skriver kundspecifika webbsidor för försäljning av produkter online. BRP sköter kontakt med betalväxel och hanterar redirect så att kunden skickas till korrekt sida för att mata in kortuppgifter. BRP har idag stöd för följande betalväxlar BRP, Svea Webpay, Nets (Netaxept och Nets Easy) och PayU. Parallellt med dessa går det även att betala beställningar via Swish.  

För att konfigurera BRP för denna lösning kontakta BRP:s support.



Flöde

  1. Kund skapar en beställning via en webbsida som går mot BRP:s REST-API se exempel här: Exempel på vanliga api-flöden

  2. Alla orderrader i beställningen måste vara odebiterade. Beställningens summa måste vara större eller lika med än 0 kr. OBS! Undantag vid köp av produkter som kräver återkommande kortbetalning, då måste summan vara större än 0 kr.

  3. Kunden skickas till BRP Online som gör en http redirect till korrekt sida hos betalväxeln.

  4. Kund genomför betalningen hos betalväxeln

  5. Kunden skickas till BRP Online

  6. BRP skapar ett kvitto för bokföringen och markerar beställningen som debiterad

  7. Ett mail med kvittot enligt standard mall skickas till kundens e-postadress (Inställningsbart), avsnitt Kvitto via e-post

  8. BRP omdirigerar kunden till angiven returURL med kvitto-id och beställnings-id som parametrar. Misslyckas betalningen sker samma omdirigering fast med en felkod som parameter.

  9. Kvittot hämtas ut via BRP:s REST-API och visas för kunden



Kvitto via e-post

Vid ett slutfört köp så kan ett e-post med kvittot enligt standard mall skickas till kundens e-postadress. Detta beteende är avstängt som standard för bakåtkompatibilitet men kan slås på av BRP support. Notera att kundens e-postadress måste vara sparad på kunden för att kunna slutföra köpet när denna funktion är aktiverad.

Om inställningen "Skickat kvittokopia till" är satt kommer en kopia på kvittot att skickas till den angivna e-postadressen.

Exempel

För exempel på kvitto se: Kvitto.pdf

Notis om signering av elektroniskt avtal

Vid köp av produkter som kräver en underskrift av avtal och elektroniska underskrifter är aktiverat i BRP (se Elektronisk underskrift) så kommer en notis att visas i e-mailet. Notisen innehåller en uppmaning till kunden att signera avtalet samt en länk där kunden kan signera avtalet. Detta aktiveras automatiskt när e-underskrifter är aktiverat.

Se exempel på kvitto med uppmaning att signera avtal: Kvitto E-underskrift.pdf

Notis om registrering av AvtaleGiro-medgivande

Vid köp av produkter som kräver AvtaleGiro-medgivande så kommer en notis att visas i e-posten. Notisen innehåller en uppmaning till kunden att registrera ett AvtaleGiro-medgivande hos Nets samt en länk som leder till Nets onlineregistrering av AvtaleGiro-medgivanden. Denna funktion är avstäng som standard men kan aktiveras av BRP support vid önskemål. 

Se exempel på kvitto med uppmaning att registrera AvtaleGiro: Kvitto AvtaleGiro.pdf

Begrepp

Bas-URL är exempelvis:

https://api.brpsystems.se/brponline/

Betala beställning via betaltjänstleverantör

För att genomföra betalningen ska websidan gå mot:

GET {BasURL}/external/payment/payfororder?orderid={orderid}&returnurl={returnurl}&hash={hash}   returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas paymentmethodid: Id på betalsättet (Heltal). Ej obligatorisk. Om ej satt får kunden välja betalsätt hos betaltjänstleverantören. receiptemail: Adress till mottagare av kvittot (Epost). Ej obligatorisk om kund finns på beställningen. Om kund är satt skickas epost både till kunden och till den angivna e-postadressen. Flera receiptemail kan anges, med eller utan kund på beställningen. hash: SHA-256 hash. Beräknas på parametrarnas värden samt ett hemligt ord (erhålls från BRP Support). orderid + paymentmethodid(om den skickas med) + receiptemail(om de skickas med) + returnurl + hemligt ord Exempel: orderid=15 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) hemligt ord: SecretWord (OBS! Exempel på hemligt ord, för att beräkna korrekt hash måste du erhålla ett hemligt ord från BRP Support) Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord Vilket ger följande hash: 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3   Exempel 2: orderid=15 paymentmethodid=100 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation hemligt ord: apor   Ger följande sträng att beräkna hash på: 15100https://api.brpsystems.se/brpgog/paymentconfirmationapor Exempel 3: orderid=15 paymentmethodid=100 receiptemail=mail@to.me receiptemail=mail@to.other returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation hemligt ord: SecretWord Ger följande sträng att beräkna hash på: 15100mail@to.memail@to.otherhttps://api.brpsystems.se/brpgog/paymentconfirmationSecretWord

Här kan du testa hashberäkning: http://www.xorbin.com/tools/sha256-hash-calculator

Efter genomförd betalning anropar BRP given "returnurl" med följande parametrar. 

{returnurl}?receiptid={receiptid}&error={errorCode}   returnurl = Angiven retururl i anropet mot payfororder (se ovan) receiptid = Kvittots id. Tomt om misslyckad betalning error = Eventuell felkod från BRP. Se felkoder. Tom vid lyckad betalning

 

Vid betalning via faktura hos betaltjänstleverantören krävs personnummer och adressuppgifter (e-post eller postadress) på beställaren.

Betala beställning via kundkonto i BRP

Betalar beställningen genom lägga det på beställarens kundkonto alternativt beställarens organisations kundkonto (vilket det blir styrs av parametern "useorgaccount", se nedan). Förutsätter att kundkonto är konfigurerat enligt Kundkonto samt att betalsättet Kundkonto har checkboxen "Använd som internetbetalning" ikryssad. 

Anrop

För att lägga det på beställarens kundkonto alternativt beställarens organisations kundkonto ska websidan gå mot:

GET {BasURL}/external/payment/paywithcustomeraccount?orderid={orderid}&returnurl={returnurl}&useorgaccount=true&hash={hash}   orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) useorgaccount: Vid "true" används beställarens organisations kundkonto. Vid "false" eller utelämnad används beställarens kundkonto. hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). Exempel: orderid=15 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) useorgaccount=true hemligt ord: SecretWord (erhålls från BRP Support). Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationtrueSecretWord Beräknad hash: 4f095301f3091999baa512c072f86502d5bc17296827ec3b38edb6b4057c0577

 

Betala beställning via faktura i BRP

Skapar en faktura i BRP för beställningen. 

Anrop

För att skapa faktura ska websidan gå mot:

GET {BasURL}/external/payment/brpinvoice?orderid={orderid}&returnurl={returnurl}&hash={hash}   orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas distributionmethod = Namn på distribueringmetod. Ej obligatorisk. Giltiga värden är "email" och "centralprint21grams". Se Fakturadistribution nedan. returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). Exempel: orderid=15 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) hemligt ord: SecretWord Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord Beräknad hash: 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3

 

Efter att fakturan har skapats anropar BRP en given "returnurl" med följande parametrar:

{returnurl}?invoiceid={invoiceid}&error={errorCode}   returnurl = Angiven retururl i anropet mot brpinvoice (se ovan) invoiceid = Fakturans id. Tomt vid eventuellt fel. error = Eventuell felkod från BRP. Se felkoder. Tom vid lyckad betalning

 

Fakturadistribution

Det krävs viss konfiguration för att fakturadistribution ska fungera. Läs Fakturadistribution för se vad som behöver göras för att komma igång med fakturadistributionen.

Gällande parametern distributionmethod

  • Om "distributionmethod" inte anges kommer fakturan att skapas och hamna i status 1 ("Ej Skickad"). 

  • Om "distributionmethod" anges kommer BRP lägga upp fakturan för distribuering med vald metod. 

  • För "distributionmethod=email" krävs att beställaren har en giltig e-post adress.  

  • För "distributionmethod=centralprint21grams" krävs att beställaren har en giltig adress.   

Betala en faktura skapad i BRP

För att genomföra betalning av faktura ska websidan gå mot:

GET {BasURL}/external/payment/payforinvoice?invoiceid={invoiceid}&hash={hash}&returnurl={returnurl}   invoiceid = Fakturans id (Heltal). Erhålls i från BRP:s REST-API returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support).    Exempel:    invoiceid=15 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) hemligt ord: SecretWord   Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord Beräknad hash = 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3  

Efter genomförd betalning anropar BRP en returnurl enligt följande ordning:

  1. "returnurl" given i anropet

  2. returnurl från inställningen "Retur-url för betalning av faktura via kortmedgivande" 

  3. en default returnurl med som visar en alert om betalningen gick bra eller inte.

Följande parametrar är med i anropet:

{returnurl}?error={errorCode}   returnurl = Angiven retururl i anropet mot payforinvoice (se ovan) error = Eventuell felkod från BRP. Se felkoder. Tom vid lyckad betalning receiptid = Kvittots id. Tomt om misslyckad betalning

Återkommande kortbetalning

Om beställningen innehåller en produkt som kräver "Återkommande kortbetalning" och betaltjänstleverantören har stöd för detta kommer BRP att lagra information för senare dragningar. Detta kan användas som ett alternativ till autogiro.

Notera: Innehåller beställningen en produkt som kräver "Återkommande kortbetalning" måste betalmetoden vara kortköp.   

Skapa eller uppdatera kortmedgivande

För att skapa eller uppdatera ett kortmedgivande ska websidan gå mot:

GET {BasURL}/external/payment/creatercpmandate?personid={personid}&businessunitid={businessunitid}&returnurl={returnurl}&hash={hash}   businessunitid = Anläggningens id (Heltal). Erhålls i från BRP:s REST-API personid = Personens id (Heltal). Erhålls i från BRP:s REST-API returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) hash: SHA-256 hash. Beräknas på parametrarna sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support).  Exempel: businessunitid=15 personid=67 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) hemligt ord: SecretWord Ger följande sträng att beräkna hash på: 1567https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord Beräknad hash: 92328d9b0474613535b25faddfde29fefc6fcb2f97ae3523a33a8e17e2196798

Efter genomförd uppdatering anropar BRP en returnurl enligt följande ordning:

  1. "returnurl" given i anropet

  2. returnurl från inställningen "Retur-url för uppdatering/skapande av kortmedgivande" 

  3. en default returnurl med som visar en alert om uppdateringen gick bra eller inte.

Följande parametrar är med i svars-anropet:

{returnurl}?error={errorCode}   returnurl = Angiven retururl i anropet mot updatercpmandate (se ovan) error = Eventuell felkod från BRP. Se felkoder. Tom vid lyckad uppdatering

Konfigurering av återkommande kortbetalning i BRP

Återkommande kortbetalningar

Betala beställning via Swish

För att genomföra betalningen ska websidan gå mot:

GET {BasURL}/external/payment/swish/payfororder?orderid={orderid}&returnurl={returnurl}&payeralias={payeralias}&hash={hash}   returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation) orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas receiptemail: Adress till mottagare av kvittot (Epost). Ej obligatorisk om kund finns på beställningen. Om kund är satt skickas epost både till kunden och till den angivna e-postadressen. Flera receiptemail kan anges, med eller utan kund på beställningen. hash: SHA-256 hash. Beräknas på parametrarnas värden (förutom payeralias), sorterat i alfabetisk ordning på parameternamnet, samt ett hemligt ord (erhålls från BRP Support).   Exempel: orderid=15 returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning) payeralias=07354254242 hemligt ord: SecretWord (OBS! Exempel på hemligt ord, för att beräkna korrekt hash måste du erhålla ett hemligt ord från BRP Support) Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord Vilket ger följande hash: 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3 

Om URL genereras via API3 (/services/generatelink/payment) så ska följande parameter-format anges in anropet till /services/generatelink/payment

{ order: 1, returnUrl: 'http://abc.se', paymentMethod: SWISTH_PAYMENT_METHOD_ID, // Fås av installation payerAlias: { number: '070001234', countryCode: 46 } }



När anropet gjorts visas nedanstående sida för kunden tills ett svar från Swish har erhållits. När svar erhållits redirectas kunden till den returnurl som skickats med i anropet enligt punkt 8 under rubriken Flöde ovan. 

Felkoder

Kod

Innebörd

Kod

Innebörd

9

Inställningar i BRP som krävs för angiven betaltjänstleverantör och betalsätt saknas.

10

Betalsätt-id saknas i anropet eller angivet betalsätt-id existerar ej .

11

Internetkassa saknas på den anläggning som ordern är gjord på (konfiguration).

12

Beställnings-id saknas i anropet eller angivet beställnings-id existerar ej.

13

Betalsättet är inte konfigurerat för internetköp (konfiguration).

14

Betalsättet stöds ej (konfiguration).

15

Betalsättet stödjer ej återkommande kortbetalning

100

Beställningen saknar anläggningstillhörighet.

101

Beställningen är redan debiterad.

102

Beställningens pris är noll eller negativt.

103

Beställare saknas på beställningen.

104

Personnummer saknas vilket krävs för aktuell betalningsmetod.

105

E-postadress alternativt postadress krävs för aktuell betalningsmetod.

106

E-postadress krävs för aktuell betalningsmetod.

107

Postadress krävs för aktuell betalningsmetod.

108

Beställningen tilläts inte att betalas eftersom den innehåller produkter som inte tillåts av Betalningsalternativen (se inställningar).

109

Beställningen tilläts inte att bekräftas eftersom den innehåller produkter som inte tillåts av Betalningsalternativen (se inställningar).

110

Beställaren försöker betala med ett organisationskonto, men har ingen organisation kopplad i BRP.

111

En eller flera produkter har en deltagarlista där deltagarinformation inte angivits.

200

Betaltjänstleverantörens egna validering går ej igenom.

201

Betalningen slutfördes ej (misslyckades eller avbröts).

202

Belopp på beställning och genomförd betalning stämmer ej, transaktionen annuleras.

203

Beställningen har tagits bort eller på annat sätt blivit felaktig under tiden som betalningen genomfördes.

204

Oväntat svar från betaltjänstleverantöreren

205

Betalningen avbröts av kund

206

Kortmedgivande kunde ej skapas

207

Värdekort, som reserverats för betalning, har ändrats under tiden som betalningen genomfördes

208

Debitering av beställningen misslyckades.

300

Faktura saknas.

301

Faktura saknar anläggningstillhörighet.

302

Fakturans belopp är noll eller negativt.

303

Fakturan har tagits bort eller på annat sätt blivit felaktigt under tiden som betalningen genomfördes.

304

Fakturan saknar referens

305

Faktura kan ej skapas för abonnemanget

400

Felaktig hash

500

Kundkontot har inte tillräcklig kredit för att täcka beställningen.

501

Kundkontot får inte användas eftersom kunden inte är tillräckligt gammal.

502

Kundkontot får inte användas eftersom det saknas medgivande för automatisk dragning.

503

Kundkontot får inte användas eftersom det finns en obetald faktura.

504

Kundkontot får inte användas eftersom kunden saknar giltig e-postadress.

505

Kundkontot får inte användas eftersom kunden inte tillåter det.

506

Kundkontot får inte användas eftersom kunden saknar ett Autogiro-abonnemang.

902

Swish: Det angivna telefonnummret är inkorret.