SveaWebPay Webservice API

Download Report

Transcript SveaWebPay Webservice API

SveaWebPay
Webservice API
Version 1.3
2012-04-26
Innehåll
Innehåll .................................................................................................................................................. 1
Historik.............................................................................................................................................. 2
Översikt ............................................................................................................................................. 3
Webservicefunktioner ....................................................................................................................... 4
Gemensamt för alla request-objekt ............................................................................................... 4
Gemensamt för alla response-objekt............................................................................................. 4
CreateOrder................................................................................................................................... 5
CreateInvoice ................................................................................................................................ 6
CloseOrder .................................................................................................................................... 8
CreatePaymentPlan ....................................................................................................................... 8
CancelPaymentPlan ...................................................................................................................... 9
ApprovePaymentPlan ................................................................................................................. 10
GetAddresses .............................................................................................................................. 10
GetContractPdf ........................................................................................................................... 11
GetPaymentPlanOptions ............................................................................................................. 11
GetPaymentPlanParams .............................................................................................................. 12
ChangeOrderInfo ........................................................................................................................ 13
Strukturer ........................................................................................................................................ 14
ClientAuthInfo ............................................................................................................................ 14
ClientOrderInfo........................................................................................................................... 14
CreditReportCustomer ................................................................................................................ 15
ClientInvoiceInfo ........................................................................................................................ 15
ClientInvoiceRowInfo ................................................................................................................ 16
ClientPaymentPlanInfo ............................................................................................................... 16
CustomerAddress ........................................................................................................................ 17
PaymentPlanOption .................................................................................................................... 17
CampainCodeInfo ....................................................................................................................... 18
CountryCode ................................................................................................................................... 19
Exempel .......................................................................................................................................... 19
Användande av GetPaymentPlanParams .................................................................................... 19
Lån .............................................................................................................................................. 20
1
Historik
2012-04-26:
• Lade till information om hur matchningen av orderrader vid leverans av faktura sker. Finns
under strukturen ClientInvoiceRowInfo.
2012-04-02:
• Mer stavningskorrigering.
• Lade till information om hur man använder GetPaymentPlanParams för att visa lägst belopp
att betala för en person.
2012-03-30:
• Korrigerat stavfel.
• Förenklat och klargjort funktion dokumentation.
• Uppdaterat dokumentationen för ChangeOrderInfo.
2012-03-29:
• Används som ny bas för framtida dokumentation av SveaWebPays APIer.
2
Översikt
Webservicen nås via:
• Produktion: https://webservices.sveaekonomi.se/webpay/SveaWebPay.asmx
• Test: https://webservices.sveaekonomi.se/webpay_test/SveaWebPay.asmx
Det är hit anrop till webservicefunktionerna ska göras. Anrop ska ske över http-protokollet, med
XML-formaterad data som inparameter (request-objekt). Anrop resulterar i ett response-objekt. Se
vidare under rubriken "Exempel".
Det finns för närvarande följande webservicefunktioner:
1. ApprovePaymentPlan
2. CancelPaymentPlan
3. ChangeOrderAmount
4. ChangeOrderInfo
5. CloseOrder
6. CreateInvoice
7. CreateOrder
8. CreatePaymentPlan
9. GetAddresses
10. GetContractPdf
11. GetPaymentPlanOptions
12. GetPaymentPlanParams
Target namespace är: https://webservices.sveaekonomi.se/webpay/
Soap action (<Target Namespace>/<Metodnamn> )
Exempel: https://webservices.sveaekonomi.se/webpay/CreateOrder
WSDL-fil hittas på följande adress:
• Produktion: https://webservices.sveaekonomi.se/webpay/SveaWebPay.asmx
• Test: https://webservices.sveaekonomi.se/webpay_test/SveaWebPay.asmx
Notera att target namespace är samma för produktion och test.
Tänk på att fakturor och betalplaner har olika nummerserier för sina identifikationsnummer. Om de
blandas kommer det inte att fungera.
Vid eventuella frågor som rör integration mot SveaWebPay, skicka ett e-post meddelande till:
[email protected]
3
Webservicefunktioner
Förkortningar i fältrubriker:
• U = Unik
• O = Obligatorisk
• Typer:
o String: Vanlig text.
o Integer: Heltal Till exempel 2, 10, -95. 32-bitars precision.
o Long: Ett heltal med 64-bitars precision.
o Double: Ett decimaltal. Till exempel 10,2 eller 25,3243.
o Decimal: Ett decimaltal med högre precision än Double.
• En parentes efter typen påvisar en begränsning i data längden. T.ex. String(4) betyder att
texten får vara längst 4 tecken. Och Integer(2) betyder att det är två siffror på heltalet. En
parentes efter Decimal eller Double betyder längden är första värdet och antalet decimaler
är andra. T.ex. Decimal(4,2) är 4 siffror varav två decimaler.
Gemensamt för alla request-objekt
Alla request-objekt har fältet Auth med strukturen ClientAuthInfo som ska innehålla era
inloggningsuppgifter. Följaktligen ska alla anrop mot SveaWebPay innehålla inloggningsuppgifter.
Fält
Auth
U O Typ
* ClientAuthInfo
Beskrivning
Inloggningsuppgifter
Gemensamt för alla response-objekt
Alla response-objekt har en gemensam struktur för hur de presenterar resultatet av en förfrågan.
Fält
Accepted
U O Typ
* Boolean
RejectionCode
Enumeration, olika för olika
request-typer. Alla har dock
koderna Accepted och Error.
ErrorMessage
String
Beskrivning
True om förfrågan accepterades,
False annars.
Endast intressant när
accepted=False. Anger då mer
information om varför förfrågan
inte accepterades.
När RejectionCode = Error så anges
här ett felmeddelande.
4
CreateOrder
Skapar en ny fakturaorder. Funktionen går igenom ett antal steg för att kontrollera om ordern bör
godkännas. Följande felkoder kan fås tillbaka.
Värde på RejectionCode
CusomterCreditRejected
CustomerOverCreditLimit
Tolkning
Avslag på kreditupplysningen.
Ordern skulle placera kunden över kreditgränsen hos Er eller
SveaWebPay.
Kunden är blockerad eller har uppvisat ett märkligt/ovanligt
beteende.
Inte i bruk.
Ordern skulle placera uppdragsgivaren över kreditgränsen hos
SveaWebPay.
Ordern överstiger det högsta tillåtna orderbeloppet hos
SveaWebPay.
Ordern överstiger det högsta tillåtna orderbeloppet hos Er.
Kunden har dålig historik hos SveaWebPay.
Kunden finns inte hos kreditupplysningsleverantören.
CustomerAbuseBlock
OrderExpired
ClientOverCreditLimit
OrderOverSveaLimit
OrderOverClientLimit
CustomerSveaRejected
CustomerCreditNoSuchEntity
IN: CreateOrderRequest
Fält
Order
InvoiceRows
UT: CreateOrderResponse
Fält
SveaOrderNr
U O Typ
* ClientOrderInfo
* Array av
ClientInvoiceRowInfo
Beskrivning
Information om ordern/kunden.
Här bör alla rader som kan tänkas
faktureras skickas in. Information
om vilka fält som ingår i
beräkningen av radsumman framgår
i dokumentationen för
ClientInvoiceRowInfo.
U O Typ
* * Long
Beskrivning
Order hos SveaWebPay. Används
vid framtida referenser till denna
order.
För avtalsformer där bara vissa
fakturor köps talar denna flagga om
ifall den preliminära bedömningen
är att fakturor på denna order
kommer att köpas.
Unikt id för den (eventuella)
kreditupplysningen som låg till
grund för beslutet.
Orderns godkända
faktureringsbelopp. (Endast vid
Accepted=True)
(Endast vid Accepted=True)
Innehåller information om kunden
från kreditupplysningen. Detta är
bland annat den adress vi kommer
att skicka fakturan till.
WillBuyInvoices
AuthorizeId
*
*
Boolean
Long
AuthorizedAmount
Double
ValidCustomer
CreditReportCustomer
5
CreateInvoice
Skapar en faktura eller en kreditfaktura på en order. Ordern måste vara aktiv, ej utgången och ha
tillräckligt återstående fakturautrymme. (Kreditering kan göras även på en stängd order)
Observera:
Vid kreditering av en order ska exakt samma orderrader som användes vid fakturaskapandet
användas. Om anropet mot tjänsten innehåller orderrader med en total negativ summa kommer
funktionen att returnera ett felmeddelande.
Värde på RejectionCode
NotAuthorized
Expired
Tolkning
Ordern saknar godkänd kreditupplysning.
Ordern är för gammal. (En order går ut efter 60 dagar som
standard.)
Fakturabeloppet är större än det fakturautrymme som finns på
ordern.
Ordern är stängd.
Den faktura som försöks krediteras tillhör inte den aktuella
ordern.
Beloppet som försöks krediteras är för stort.
OverAuthorizedAmount
OrderIsClosed
CreditInvoiceNotInOrder
CreditAmountTooHigh
IN: CreateInvoiceRequest
Fält
SveaOrderNr
Invoice
UT: CreateInvoiceResponse
Fält
InvoiceNumber
U
*
O
*
*
Typ
Long
ClientInvoiceInfo
U
*
O
Typ
Long
Beskrivning
SveaWebPays ordernummer.
De orderrader som ni vill leverera.
Matcha med de som skickades in i
CreateOrder för att leverera hela
ordern som en faktura. Annars
levereras de inskickade
orderraderna som en delleverans.
PdfLink
String
Beskrivning
Unikt fakturanummer vid
Accepted=true annars nil.
Förfallodatum vid Accepted=true
annars nil.
True om fakturalänk finns annars
false.
Länk till faktura.
OcrPaymentAccountNumber
String
Inte i bruk.
Double
Totala fakturabeloppet.
InvoiceAmountCheckDigit
String
Inte i bruk.
BoughtInvoiceText
String
Inte i bruk.
OcrReference
String
Inte i bruk.
Duedate
PdfLinkIncluded
InvoiceAmount
Datum
*
*
Boolean
6
7
CloseOrder
Stänger en order. Detta bör göras efter sista faktureringen. På en stängd order kan endast
kreditfakturor skapas.
Värde på RejectionCode
OrderAlreadyClosed
Error
Accepted
IN: CloseOrderRequest
Fält
SveaOrderNr
UT: CloseOrderResponse
Fält
Inga ytterligare
Tolkning
Ordern är redan stängd.
Generellt fel, läs ErrorMessage för mer information.
U O Typ
* * Long
Beskrivning
SveaWebPays ordernummer.
U O Typ
Beskrivning
CreatePaymentPlan
Skapar en betalningsplan. PaymentPlan är ett begrepp för ett belopp som ska betalas i delar över tid.
Kan t.ex. representera ett lån eller en delbetalning av en köpt vara. Innan en PaymentPlan skapas görs
en kreditprövning.
Värde på RejectionCode
CustomerCreditRejected
CustomerOverCreditLimit
CustomerAbuseBlock
ClientOverCreditLimit
PaymentPlanIsCancelled
OverOrderLimit
CustomerSveaRejected
CustomerCreditNoSuchEntity
InvalidCampainCodeAmountCombination
Tolkning
Avslag på kreditupplysningen.
Kreditgränsen överskriden.
Kunden är blockerad eller har uppvisat ett märkligt/ovanligt
beteende.
Uppdragsgivarens kreditgräns överskriden.
Betalningsplanen är stängd.
Kreditgränsen för enstaka lån är överskriden.
Avslag på grund av kredithistorik hos SveaWebPay.
Personen/Företaget finns inte i kreditupplysningsföretagets
register.
Kombinationen av kampanjkod och belopp är felaktig. Kan
inträffa t.ex. om kampanjkoden som anges inte finns eller om
det angivna beloppet är för högt eller för lågt för den
specificerade kampanjkoden.
IN: CreatePaymentPlanRequest
Fält
U O Typ
InvoiceRows
ClientInvoiceRowInfo
Amount
*
Double
PaymentPlan
*
ClientPaymentPlanInfo
Beskrivning
Struktur som innehåller
fakturarader. Används för att räkna
fram lånebeloppet (Används endast
vid delbetalning.)
Begärt lånebelopp. (Används endast
vid lån.)
Struktur som innehåller information
som behövs för att skapa en
betalningsplan.
8
UT: CreatePaymentPlanResponse
Fält
U O Typ
SveaPaymentPlanNr
* * Long
AuthorizedAmount
ContractNumber
ContractNumberIncluded
Double
Long
Boolean
Beskrivning
Unik identifierare för
betalningsplanen hos SveaWebPay.
Godkänd summa.
Avtalsnummer.
Anger om ett avtalsnummer finns
med i svaret.
I fallet ”lån” skapas avtalet upp
direkt och ett avtalsnummer skickas
med i svaret.
ValidCustomer
CreditReportCustomer
I fallet ”delbetalning” skapas
avtalsnumret först när avtalet
godkänns med
ApprovePaymentPlan.
Struktur som innehåller
kundinformation från
kreditupplysningen.
CancelPaymentPlan
Avbryter en skapad men icke ännu godkänd betalningsplan. Aktiverade betalningsplaner kan endast
avbrytas genom kontakt med SveaWebPay kundtjänst.
Värde på RejectionCode
PaymentPlanDoesNotExist
WrongStatus
IN: CancelPaymentPlanRequest
Fält
U O Typ
SveaPaymentPlanNr
* * Long
UT: CancelPaymentPlanResponse
Fält
U O Typ
Inga ytterligare
Tolkning
Den specificerade betalplanen existerar inte.
Betalningsplanen har en status som gör att det inte är tillåtet
att stänga den.
Beskrivning
Unik identifierare för
betalningsplanen.
Beskrivning
9
ApprovePaymentPlan
Det går bara att godkänna en betalningsplan via denna funktion om den representerar en delbetalning.
Lån kan endast godkännas av SveaWebPay.
Värde på RejectionCode
PaymentPlanDoesNotExist
WrongStatus
Tolkning
Betalningsplanen existerar inte.
Betalningsplanen har en status som gör att det inte är tillåtet
att godkänna den.
IN: ApprovePaymentPlanRequest
Fält
U O Typ
SveaPaymentPlanNr
* * Long
Beskrivning
Unik identifierare för
betalningsplanen.
UT: ApprovePaymentPlanResponse
Fält
U O Typ
ContractNumber
Long
Beskrivning
Avtalsnummer om det finns något.
GetAddresses
Om en kund har flera adresser kan GetAddresses användas för att få en lista över dessa. Denna
funktion är fungerar endast när CountryCode är Sverige (SE), Norge (NO) eller Danmark (DK).
Detta används i fall när
Värde på RejectionCode
Accepted
NoSuchEntity
Tolkning
Adress(er) finns.
Ingen adress hittades.
IN: GetCustomerAddressesRequest
Fält
U O Typ
IsCompany
* Boolean
CountryCode
SecurityNumber
*
*
*
String
String
UT: GetCustomerAddressesResponse
Fält
U O Typ
RejectionCode
* Enumeration
Addresses
*
Array av CustomerAddress
Beskrivning
True om det är ett företag. False för
privatpersoner.
Sökta kundens landskod.
Sökta kundens Personnummer eller
organisationsnummer.
Beskrivning
Error
Accepted
NoSuchEntity
Struktur som innehåller
kunduppgifter.
10
GetContractPdf
Om en betalningsplan representerar ett lån kan man anropa denna funktion och få tillbaka ett
kontraktsdokument i PDF-format. Dokumentets (filens) data återfinns i fältet FileBinaryDataBase64.
Värde på RejectionCode
PaymentPlanDoesNotExist
WrongStatus
Tolkning
Betalningsplanen finns inte.
Betalningsplanen har en status som gör att det inte är tillåtet
att hämta PDF.
Tidsfristen för att godkänna kontraktet har löpt ut. Det går
därför inte att hämta PDF.
ContractExpired
IN: GetContractPdfRequest
Fält
U O Typ
SveaPaymentPlanNr
* * Long
UT: GetContractPdfResponse
Fält
U O Typ
FileLengthInBytes
Long
FileBinaryDataBase64
String
Beskrivning
Unik identifierare för
betalningsplanen.
Beskrivning
Mängden fildata i bytes.
Fildata (Base64 encoded) som
representerar PDF filen.
GetPaymentPlanOptions
Returnerar en lista med avbetalningsalternativ för begärt lånebelopp. Notera att om det inte finns
några alternativ alls för angivet belopp så blir svaret Accepted = True och InvoiceRows är en tom
array.
IN: GetPaymentPlanOptionsRequest
Fält
U O Typ
Amount
Double
InvoiceRows
Array av
ClientInvoiceRowInfo
UT: GetPaymentPlanOptionsResponse
Fält
U O Typ
PaymentPlanOptions
Array av PaymentPlanOption
Amount
Double
Beskrivning
Begärt lånebelopp. (Används endast
vid lån.)
Struktur som innehåller faktura rader. Används för att räkna fram
lånebeloppet. (Används endast vid
delbetalning.)
Beskrivning
Avbetalningsalternativ för ett givet
lånebelopp.
Begärt lånebelopp.
11
GetPaymentPlanParams
Returnerar en lista med avbetalningsinformation. Används med fördel när man vill visa
delbetalningsalternativ för kunden på enskilda produkter.
Eftersom Kampanj-informationen som är bunden till en enskild kampanjkod endast kan ändras en
gång per dygn så kan man med fördel lagra dessa värden lokalt för snabbare uträkningar.
Se Användande av GetPaymentPlanParams för mer information.
IN: GetPaymentPlanParamsRequest
Innehåller endast inloggningsinformation.
UT: GetPaymentPlanParamsResponse
Fält
U O Typ
CampainCodes
Array av CampainCodeInfo
Beskrivning
Avbetalningsinformation.
12
ChangeOrderInfo
Denna funktion används för att ändra icke-kritiska uppgifter på fakturor och betalplaner. Genom att
specificera ett SveaOrderNr eller ett SveaPaymentPlanNr så kan man ändra en faktura respektive
betalplan.
Om SveaOrderNr är specificerat kan man ändra ClientOrderNr samt CustomerReference.
Om SveaPaymentPlanNr är specificerat kan man endast ändra ClientOrderNr.
För att ändra ett värde på en order måste fältet ChangeX vara flaggat med True samt NewX måste ha
ett godkänt värde. Där X är en variable man vill ändra på (ClientOrderNr eller CustomerReference )
IN: ChangeOrderInfoRequest
Fält
U O Typ
SveaOrderNr
*
Integer
SveaPaymentPlanNr
*
Integer
ChangeClientOrderNr
* Boolean
NewClientOrderNr
String(30)
ChangeCustomerReference
* Boolean
NewCustomerReference
String(30)
Beskrivning
Unikt id för en fakturaorder.
Unikt id för en betalningsplanorder.
Ändra ClientOrderNr?
Nytt ClientOrderNr
Ändra CustomerReference?
Nytt ClientOrderNr
UT: ChangeOrderInfoResponse
Fält
U O Typ
RejectionCode
RejectionCode
Beskrivning
Felmeddelande
Värde på RejectionCode
Error
Accepted
OrderDoesNotExist
Tolkning
Fel på anrop. Se ErrorMessage för mer information.
Specificerade fält uppdaterade.
Specificerad fakturaorder eller betalningsplan finns inte.
13
Strukturer
ClientAuthInfo
Innehåller den inloggningsinformation som är gemensam för alla anrop mot tjänsten.
Fält
U O Typ
Beskrivning
ClientNumber
* Integer(7)
Uppdragsgivarnummer. Fås från
SveaWebPay.
Username
* String(80)
Användarnamn. Fås från
SveaWebPay.
Password
* String(50)
Lösenord. Fås från SveaWebPay.
ClientOrderInfo
Innehåller information från Er om kunden och ordern.
Fält
U O Typ
ClientOrderNr
String(30)
CustomerReference
String(30)
OrderDate
Date
CountryCode
* String(2)
SecurityNumber
*
String(12)
IsCompany
*
Boolean
CustomerEmail
String(50)
PreApprovedCustomerId
Integer(10)
AddressSelector
*
String
Beskrivning
Ert ordernummer.
Faktura referens.
Orderdatum.
Landskod. (Land som kunden finns
i. )
Se CountryCode-tabell för
godkända värden.
Personnummer eller
organisationsnummer. (Beroende på
IsCompany)
True om det är ett företag. False för
privatpersoner.
E-postadress till kunden. Tvingande
vid distributionssättet e-post.
Om funktionen med förgodkända
storkunder används så skickas deras
kundnummer med här när de
handlar. Utelämnas eller sätts till
noll i övriga fall.
Unik identifierare till den adress
som ska användas.
14
CreditReportCustomer
Innehåller den information som skickas tillbaka om kunden när en kreditupplysning tagits.
Fält
U O Typ
Beskrivning
LegalName
* String(60)
Fullständigt namn.
SecurityNumber
*
String(12)
Person- eller organisationsnummer.
AddressLine1
* String(40)
Namn.
AddressLine2
* String(40)
Gatuadress.
Postcode
* Integer(5)
Postnummer.
Postarea
* String(25)
Postort.
BusinessType
* Enumeration
• Person
• Business
• Unknown
• GovernmentalOrganization
• Organization
ClientInvoiceInfo
Innehåller information från Er om den aktuella fakturan.
Fält
U O Typ
NumberOfCreditDays
* Integer
InvoiceDistributionForm
*
InvoiceNrToCredit
InvoiceRows
Enumeration
Long
*
Array av
ClientInvoiceRowInfo
Beskrivning
Antal dagar mellan fakturadatum
och förfallodatum.
Post – Via brev.
Email – Via e-post. (Faller över på
Post automatiskt om ingen
epostadress angivits i CreateOrder.)
Om något anges här så blir det en
kredit på denna faktura, annars en
vanlig faktura.
Kreditering går även att göra på en
stängd order. Den faktura som
krediteras måste tillhöra aktuell
order.
Fakturarader.
15
ClientInvoiceRowInfo
Beräkningen av radbeloppet går till som följer:
1. RadbeloppExMoms =
Round(Round(NrOfUnits) * Round(PricePerUnit)) * (1-DiscountPercent/100))
2. Radmoms = Round(RadbeloppExMoms*Moms/100)
3. TotalbeloppRad = Round(RabeloppExMoms + Radmoms)
Där Round avser avrundning till två decimaler.
Vid matchning av orderraderna (vid fakturaleverans) så måste följande fält vara identiska för att
orderraden skall uppfattas som samma.
• ArticleNr
• Description
• NrOfUnits
• PricePerUnit
• Unit
• VatPercent
• DiscountPercent
Fält
ArticleNr
Description
PricePerUnit
NrOfUnits
Unit
VatPercent
DiscountPercent
ClientOrderRowNr
U O Typ
String(10)
String(40)
* Double(11,2)
* Double(7,2)
String(3)
* Integer(2)
* Integer(2)
String
Beskrivning
Artikelnummer.
Namn eller kort beskrivande text.
Pris/enhet.
Antal enheter.
Enhet.
Anges i procent(0-99).
Anges i procent(0-99).
Inte i bruk.
ClientPaymentPlanInfo
Fält
SendAutomaticGiropayment
Form
U O Typ
Boolean
CampainCode
*
ClientPaymentPlanNr
String
CustomerReference
CountryCode
SecurityNumber
CustomerEmail
CustomerPhoneNumber
IsCompany
Long
*
*
String
String(2)
*
String
*
String(50)
String(18)
Boolean
Beskrivning
Avgör om en autogiroblankett ska
skickas ut med första
inbetalningsavin.
Kampanjkoden som i kombination
med lånebeloppet avgör
avtalsvillkoren.
Fås från GetPaymentPlanOptions.
Bör vara id:t på lånet i ert system.
Används för att kunna hitta den i
administrationssystemet även om
man bara vet ert id.
Kundreferens.
Landskod. Se CountryCode-tabell
för godkända värden.
Organisationsnummer eller
personnummer.
Kundens e-postadress.
Kundens telefonnummer.
Avgör om SecurityNumber
16
representerar en privatperson eller
ett företag.
CustomerAddress
Fält
LegalName
SecurityNumber
U O Typ
* String
*
String
PhoneNumber
AddressLine1
AddressLine2
PostCode
PostArea
BusinessType
AddressSelector
FirstName
LastName
*
*
*
*
*
*
String
String
String
Integer
String
Enumeration
String
String
String
Beskrivning
Kundens för- och efternamn.
Kundens person eller
organisationsnummer.
Kundens telefonnummer.
Kundens adress.
Kundens co. adress.
Kundens postnummer.
Kundens postadress.
• Person
• Business
• Unknown
• GovernmentalOrganization
• Organization
Unik identifierare för varje adress.
Kundens förnamn.
Kundens efternamn.
PaymentPlanOption
Representerar ett avbetalningsalternativ för ett givet lånebelopp.
Fält
U O Typ
CampainCode
* Long
Description
*
String
PaymentPlanType
*
PaymentPlanTypeCode
ContractLengthInMonths
MonthlyAnnuity
*
*
Integer
Double
Beskrivning
En kampanjkod är en uppsättning
avtalsvillkor som sätts upp av
SveaWebPay och som i
kombination med ett lånebelopp är
det som behövs för att göra en
betalplansansökan.
Beskriver kampanjkoden i klartext.
Kan vara t ex ”Räntefritt 12
månader”.
• Standard: Vanligt annuitetslån.
• InterestFree: Räntefritt
annuitetslån.
• InterestAndAmortizationFree
: Ränte- och amorteringsfritt
lån. Betyder I praktiken att
standardvillkoret är att man
bara gör en betalning på hela
beloppet vid slutet av den ränteoch amorteringsfira perioden.
Avtalslängd i månader.
Månadsbetalning.
(Aviseringsavgiften är inte
inräknad)
Används inte i fallet
17
InitialFee
*
Double
NotificationFee
*
Double
InterestRatePercent
EffectiveInterestRatePercent
*
*
Double
Double
NrOfInterestFreeMonths
NrOfPaymentFreeMonths
*
*
Integer
Integer
InterestAndAmortizationFree
eftersom det då bara är en
betalning.
Uppläggningsavgift. Betalas vid
första betalningstillfället.
Aviseringsavgift som tas ut vid
varje betalningstillfälle.
Årsränta i procent.
Effektivränta i procent.
Vi rekommenderar er att inte visa
effektivräntan i kassan och per
produkt, då denna kan bli väldigt
hög vid låga belopp. Vi föreslår att
ni visar upp färdiga exempel
istället.
Antal räntefria månader.
Antal avbetalningsfria månader.
CampainCodeInfo
Representerar avbetalningsinformation.
Fält
CampainCode
U O Typ
* Long
Description
*
String
PaymentPlanType
*
PaymentPlanTypeCode
ContractLengthInMonths
MonthlyAnnuityFactor
*
*
Integer
Double
InitialFee
*
Double
NotificationFee
*
Double
InterestRatePercent
*
Double
Beskrivning
En kampanjkod är en uppsättning
avtalsvillkor som sätts upp av
SveaWebPay och som i
kombination med ett lånebelopp är
det som behövs för att göra en
låneansökan.
Beskriver kampanjkoden i klartext.
Kan vara t.ex. ”Räntefritt 12
månader”
• Standard: Vanligt annuitetslån.
• InterestFree: Räntefritt
annuitetslån.
• InterestAndAmortizationFree
: Ränte- och amorteringsfritt
lån. Betyder i praktiken att
standardvillkoret är att man
bara gör en betalning på hela
beloppet vid slutet av den ränteoch amorteringsfria perioden.
Avtalslängd i månader.
Del av summan som ska betalas
varje månad. Ta totala summan
multiplicerat med detta värde för att
få tillbaka rätt värde.
Uppläggningsavgift. Betalas vid
första betalningstillfället.
Aviseringsavgift som tas ut vid
varje betalningstillfälle.
Årsränta i procent.
18
NrOfInterestFreeMonths
NrOfPaymentFreeMonths
FromAmount
*
*
*
Integer
Integer
Double
ToAmount
*
Double
Antal räntefria månader.
Antal avbetalningsfria månader.
Lägsta summa som kampanjkoden
gäller för.
Högsta summa som kampanjkoden
gäller för.
Enumerationer:
CountryCode
Land
SE
NO
DK
FI
Värde
Sverige
Norge
Danmark
Finland
Exempel:
Användande av GetPaymentPlanParams istället för
GetPaymentPlanOptions
Fördelen med att använda GetPaymentPlanParams jämfört med att köra GetPaymentPlanOptions är
att det inte sker några uträkningar hos SveaWebPay vilket kan snabba upp sidan där anropet
exekveras.
Om man använder GetPaymentPlanOptions så får man visserligen dessa uträkningar i svaret från
SveaWebPay. Detta är inget som vi rekommenderar eftersom det tar tid att göra anropet mot
SveaWebPay samt att vid små värden så riskerar man att inte få något svar. Detta är för att
GetPaymentPlanOptions räknar ut effektivräntan och vid ett litet fakturabelopp blir effektivräntan
extremt hög vilket gör att tjänsten returnerar fel.
Exempel:
Du har en produkt som kostar 129: - och vill visa en liten ruta på din sida där kunden kan se minsta
delbetalningsbelopp att betala.
På morgonen kör servern GetPaymentPlanParams och cachea värdena.
Börja med att sortera ut de kampanjerna som passar med produktvärdet.
I detta fall är det endast följande kampanjkod som passar på produkten:
<CampainCodeInfo>
<CampainCode>999999</CampainCode>
<Description>Dela upp betalningen på 24 månader</Description>
<PaymentPlanType>Standard</PaymentPlanType>
<ContractLengthInMonths>24</ContractLengthInMonths>
<MonthlyAnnuityFactor>0.050020791054524637</MonthlyAnnuityFactor>
<InitialFee>0</InitialFee>
<NotificationFee>29</NotificationFee>
19
<InterestRatePercent>18.2</InterestRatePercent>
<NrOfInterestFreeMonths>0</NrOfInterestFreeMonths>
<NrOfPaymentFreeMonths>0</NrOfPaymentFreeMonths>
<FromAmount>1</FromAmount>
<ToAmount>30000</ToAmount>
</CampainCodeInfo>
Lägsta beloppet för kunden att betala blir då 129 * 0.05… + 29 = 35,45 och sen avrunda uppåt -> 36
kronor per månad. ( ProductPrice * MonthlyAnnuityFactor + NotificationFee )
Om man vill få ut totalbeloppet som ska betalas så tar man:
InitialFee + (ProductPrice * MonthlyAnnuityFactor + NotificationFee) *ContractLengthInMonths.
Vilket i detta exempel blir: 0 + Round(129 * 0.05 + 29) * 24 => 36 * 24 = 864.
Lån
Grundprocess:
1. Hämta PaymentPlanOptions för lånebeloppet. Anropa GetPaymentPlanOptionsRequest
2. Skapa PaymentPlan. Välj en kampanjkod från föregående steg och anropa: CreatePaymentPlan
3. Hämta kontraktet för lånet. Anropa: GetContractPdf
Om du vill stänga ett lån som ännu inte godkänts. Anropa: CancelPaymentPlanRequest
GetPaymentPlanOptionsRequest:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetPaymentPlanOptions xmlns="https://webservices.sveaekonomi.se/webpay">
<request>
<Auth>
<ClientNumber>54900</ClientNumber>
<Username>SomeName</Username>
<Password>SomePassword</Password>
</Auth>
<Amount>11000</Amount>
</request>
</GetPaymentPlanOptions>
</soap:Body>
</soap:Envelope>
GetPaymentPlanOptionsResponse:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
20
<GetPaymentPlanOptionsResponse xmlns="https://webservices.sveaekonomi.se/webpay">
<GetPaymentPlanOptionsResult>
<Accepted>true</Accepted>
<PaymentPlanOptions>
<PaymentPlanOption>
<CampainCode>210012</CampainCode>
<Description>12 Mån lån</Description>
<PaymentPlanType>Standard</PaymentPlanType>
<ContractLengthInMonths>12</ContractLengthInMonths>
<MonthlyAnnuity>1019</MonthlyAnnuity>
<InitialFee>500</InitialFee>
<NotificationFee>35</NotificationFee>
<InterestRatePercent>20</InterestRatePercent>
<EffectiveInterestRatePercent>42</EffectiveInterestRatePercent>
<NrOfInterestFreeMonths>0</NrOfInterestFreeMonths>
<NrOfPaymentFreeMonths>0</NrOfPaymentFreeMonths>
</PaymentPlanOption>
<PaymentPlanOption>
<CampainCode>210024</CampainCode>
<Description>24 Mån lån</Description>
<PaymentPlanType>Standard</PaymentPlanType>
<ContractLengthInMonths>24</ContractLengthInMonths>
<MonthlyAnnuity>560</MonthlyAnnuity>
<InitialFee>500</InitialFee>
<NotificationFee>35</NotificationFee>
<InterestRatePercent>20</InterestRatePercent>
<EffectiveInterestRatePercent>36.23</EffectiveInterestRatePercent>
<NrOfInterestFreeMonths>0</NrOfInterestFreeMonths>
<NrOfPaymentFreeMonths>0</NrOfPaymentFreeMonths>
</PaymentPlanOption>
<PaymentPlanOption>
<CampainCode>210036</CampainCode>
<Description>36 Mån lån</Description>
<PaymentPlanType>Standard</PaymentPlanType>
<ContractLengthInMonths>36</ContractLengthInMonths>
<MonthlyAnnuity>409</MonthlyAnnuity>
<InitialFee>500</InitialFee>
<NotificationFee>35</NotificationFee>
<InterestRatePercent>20</InterestRatePercent>
<EffectiveInterestRatePercent>33.96</EffectiveInterestRatePercent>
<NrOfInterestFreeMonths>0</NrOfInterestFreeMonths>
<NrOfPaymentFreeMonths>0</NrOfPaymentFreeMonths>
</PaymentPlanOption></PaymentPlanOptions>
<Amount>11000</Amount></GetPaymentPlanOptionsResult>
</GetPaymentPlanOptionsResponse>
</soap:Body>
</soap:Envelope>
21
CreatePaymentPlanRequest:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CreatePaymentPlan xmlns="https://webservices.sveaekonomi.se/webpay">
<request>
<Auth>
<ClientNumber>54900</ClientNumber>
<Username>SomeName</Username>
<Password>SomePassWord</Password>
</Auth>
<Amount>2000</Amount>
<PayPlan>
<SendAutomaticGiropaymentForm>false</SendAutomaticGiropaymentForm>
<CampainCode>210012</CampainCode>
<ClientPaymentPlanNr>plan-1</ClientPaymentPlanNr>
<CustomerReference>12456</CustomerReference>
<CountryCode>SE</CountryCode>
<SecurityNumber>010730-2773</SecurityNumber>
<CustomerEmail></CustomerEmail>
<IsCompany>false</IsCompany>
</PayPlan>
</request>
</CreatePaymentPlan>
</soap:Body>
</soap:Envelope>
CreatePaymentPlanResponse:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreatePaymentPlanResponse xmlns="https://webservices.sveaekonomi.se/webpay">
<CreatePaymentPlanResult>
<Accepted>true</Accepted>
<RejectionCode>Accepted</RejectionCode>
<SveaPaymentPlanNr>157</SveaPaymentPlanNr>
<AuthorizedAmount>2000</AuthorizedAmount>
<ContractNumber>100004</ContractNumber>
<ContractNumberIncluded>true</ContractNumberIncluded>
<ValidCustomer>
<LegalName>Test Person</LegalName>
<SecurityNumber>0107302773</SecurityNumber>
<AddressLine2>Testvägen 4</AddressLine2>
22
<Postcode>64732</Postcode>
<Postarea>Mariefred</Postarea>
<BusinessType>Person</BusinessType>
</ValidCustomer>
</CreatePaymentPlanResult>
</CreatePaymentPlanResponse>
</soap:Body>
</soap:Envelope>
GetContractPdfRequest:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetContractPdf xmlns="https://webservices.sveaekonomi.se/webpay">
<request>
<Auth>
<ClientNumber>54900</ClientNumber>
<Username>SomeName</Username>
<Password>SomePassWord</Password>
</Auth>
<SveaPaymentPlanNr>157</SveaPaymentPlanNr>
</request>
</GetContractPdf>
</soap:Body>
</soap:Envelope>
GetContractPdfResponse:
<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetContractPdfResponse xmlns="https://webservices.sveaekonomi.se/webpay">
<GetContractPdfResult>
<Accepted>true</Accepted>
<RejectionCode>Accepted</RejectionCode>
<FileLengthInBytes>230040</FileLengthInBytes>
<FileBinaryDataBase64>JVBERi0xDIvSUQgWzwzMjRhYWJkNGVlN2QzNDZkYj...more...</File
BinaryDataBase64>
</GetContractPdfResult>
</GetContractPdfResponse>
</soap:Body>
</soap:Envelope>
23
CancelPaymentPlanRequest:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CancelPaymentPlan xmlns="https://webservices.sveaekonomi.se/webpay">
<request>
<Auth>
<ClientNumber>54900</ClientNumber>
<Username>SomeName</Username>
<Password>SomePassWord</Password>
</Auth>
<SveaPaymentPlanNr>157</SveaPaymentPlanNr>
</request>
</CancelPaymentPlan>
</soap:Body>
</soap:Envelope>
CancelPaymentPlanResponse:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CancelPaymentPlanResponse xmlns="https://webservices.sveaekonomi.se/webpay">
<CancelPaymentPlanResult>
<Accepted>true</Accepted>
<RejectionCode>Accepted</RejectionCode>
</CancelPaymentPlanResult>
</CancelPaymentPlanResponse>
</soap:Body></soap:Envelope>
ChangeOrderInfoRequest:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
< soap:Header/>
< soap:Body>
<ChangeOrderInfo>
<request>
<Auth>
<ClientNumber>59012</ClientNumber>
<Username>SomeUsername</Username>
<Password>SomePassword</Password>
</Auth>
<SveaOrderNr>0</SveaOrderNr>
<SveaPaymentPlanNr>143236</SveaPaymentPlanNr>
<ChangeClientOrderNr>true</ChangeClientOrderNr>
<NewClientOrderNr>CustRef-100001</NewClientOrderNr>
<ChangeCustomerReference>false</ChangeCustomerReference>
24
</request>
</ChangeOrderInfo>
</ soap:Body>
</ soap:Envelope>
ChangeOrderInfoResponse
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ChangeOrderInfoResponse xmlns="https://webservices.sveaekonomi.se/webpay">
<ChangeOrderInfoResult>
<Accepted>false</Accepted>
<ErrorMessage>PaymentPlan does not exist</ErrorMessage>
<RejectionCode>OrderDoesNotExist</RejectionCode>
</ChangeOrderInfoResult>
</ChangeOrderInfoResponse>
</ soap:Body>
</ soap:Envelope>
25