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
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
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.
Kunden skickas till BRP Online som gör en http redirect till korrekt sida hos betalväxeln.
Kund genomför betalningen hos betalväxeln
Kunden skickas till BRP Online
BRP skapar ett kvitto för bokföringen och markerar beställningen som debiterad
Ett mail med kvittot enligt standard mall skickas till kundens e-postadress (Inställningsbart), avsnitt Kvitto via e-post
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.
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:
"returnurl" given i anropet
returnurl från inställningen "Retur-url för betalning av faktura via kortmedgivande"
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:
"returnurl" given i anropet
returnurl från inställningen "Retur-url för uppdatering/skapande av kortmedgivande"
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
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 |
---|---|
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. |