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.

BRP Internal

Argument för att använda förenklad betalning (från MDs inlägg i ett ärende)

  • Undermarkant för integratörer att slutföra internetköp av beställningar skapade via API:t. Lägre utvecklingstid (i storleksordning 100-200 timmar).

    • BRP hanterar om beställningen timat ur eller andra fel uppstår och annulerar i så fall köpet etc.

    • BRP säkerställer att beställningen är OK innan köpet slutförs

    • BRP skickar kvitto/beställningsbekräftelse om önskat

    • Väl beprövad funktion så andelen fel är begränsat. Det blir ofta fel när integratörer ska hantera köpet själva och synka mellan PSP och BRP.

  • Har stöd för att betala/delbetala med värdekort.

  • Möjlighet att betala en obetald faktura.

  • Möjlighet att genomföra återköp och avboka beställningar via BRP.

    • Enkelt att söka upp köp på person/kvitto/tidpunkt

    • Annars manuell hantering i två olika system som måste hållas i sync.

  • Gör det möjligt att använda BRPs funktion för återkommande kortbetalning a.k.a. RCP där Pay for order är ett krav.

  • Möjlighet att byta PSP utan att integratören behöver göra några ändringar alls i deras kod (givet att BRP stödjer PSPn och integrationen är gjord korrekt).


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


BRP Internal

Genomföra provköp

Det finns möjlighet att genomföra provköp i demosyfte eller för att testa att inställningarna är korrekta. Logga in som BRP-anställ i BRP Online så finns menyalternativet Test av internetbetalningar som alternativ under Ekonomi. Där får man välja betalsätt och om beställningen ska innehålla en produkt som kräver Återkommande kortbetalningar eller inte. Beställningen städas bort automatiskt när man kommer tillbaka om man avbryter/misslyckas med köpet. Genomför man köpet (vilket inte bör göras på kunds installation) så hamnar man på internetbetalningssidan där man får se detaljer om köpet.

Följande händer

/pay/test anropar man om man skickar direkt via butiken (det går att även skicka test = yes) till betalfönstret, sen blir man redirectad till /pay. Det är för att markera sessionen som test.

Att skicka testflaggan till /admin/link_pay låter helt korrekt, och du borde då hamna på /pay (men sessionen är test).

Testkort: 4444333322221111, med valfritt utgångsdatum och cvc. Verkar inte funka längre, men titta här: https://shop.nets.eu/sv/web/partners/testing

Testperson: 400612-8989

Om du inte väljer betalsätt kommer betalväxeln visa alla betalsätt som är konfigurerade hos d2i. Vanligtvis kort, men kan även vara direktbetalning och faktura.

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

BRP Internal

Skicka kvitto via e-post

Inställningen: "Skicka kvitto via e-post vid slutfört internetköp", sendReceiptEmailWhenInternetPayment, ska klickas i för att aktivera funktionen.

Inställningen: "Uppmana kund att registrera AvtaleGiro-medgivande online i kvittomail" aktiverar notis om att AvtaleGiro saknas och länk till online registrering. Default av till en början åtminstone tills det är pilotat.

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.

BRP Internal

Anropet nedan användes inititalt (och används fortfarande av Medley). Det är dock anropet ovan (payfororder) som ska avändas för att betala en beställning eftersom det har hash-validering.

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

GET {BasURL}/external/payment/forwardtoexternal?orderid={orderid}&paymentmethodid={paymentmethodid}&returnurl={returnurl}
 
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.

Betalsättet bestämmer hur köpet konteras i bokföringen. Vilket betalsätt som ska användas måste stämmas av med ekonomiansvariga. I BRP visas betalsätt och id i meny Ekonomi > Inställningar > Betalsätt.

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

BRP Internal

Inställningen "Betalsätt för faktura" måste sättas till korrekt betalsätt. Där måste också en rapportmall anges om fakturan ska kunna distribueras via email eller 21grams.

Hemligt ord för hash hämtas från inställningen : "Hemligt ord för att beräkna hash för Förenklad betalning via webservice"

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

BRP Internal

Hemligt ord för hash hämtas från inställningen : "Hemligt ord för att beräkna hash för Förenklad betalning via webservice"

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

Betala en faktura skapad i BRP

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

BRP Internal

Hemligt ord för hashberäkning hämtas från setting "Hemligt ord för att beräkna hash".

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

BRP Internal

För konfiguration av swish, se: /wiki/spaces/K2/pages/2757296245

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

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.