Skapa faktura för nästa debiteringsintervall för abonnemang
- Skapar kund och abonnemang med API2/API3
- Kontrollera om personen finns sedan tidigare (API3 om e-post eller mobil finns, kräver särskilda rättigheter "/customers")
- Skapar kunden i BRP (API3 - kap 3.16)
- Skapar abonnemanget i BRP (API3 kap. 3.38 och 3.44 /orders respektive /orders/{order}/items/subscriptions)
- Sparar person-ID och abonnemangs-ID på sin sida för att varje månad kunna debitera fram abonnemanget
- Initial debitering
- Markerar beställningen som betald (API3, kräver kunskap om betalsätt och beställning som skapades i 1. Görs som integratör med särskild rättighet "/receipts")
- Månatlig debitering
- För varje abonnemang
- Kontrollera till vilket datum abonnemanget debiterats (API 3 kap 3.28 /customers/{customer}/subscriptions, kräver särskilda rättigheter som integratör)
- Kontrollera om abonnemanget är uppsagt (API3, samma punkt 3.1.1)
- Kontrollera om abonnemanget är fryst eller har annan avvikelse (API3, samma punkt 3.1.1)
- Debiterar fram abonnemanget en debiteringsperiod (vanligtvis en månad) och får tillbaka ett faktura ID (Se information en anrop under)
- Markerar fakturan som betald med valt betalsätt (så att intäkten visas hos med betalsättet) (API3, kräver faktura ID samt betalsätt. Görs som integratör med särskild rättighet "/receipts")
- För varje abonnemang
Endpoint för att skapa faktura för nästa debiteringsintervall
BaseURL/external/invoice/debitsubscription/{Subscription ID}
Där "BaseURL" är exempelvis "https://api.brpsystems.se/brponline/" och "Subscription ID" är ID:t på abonnemanget man vill debitera fram
Skapa faktura
För att skapa fakturan:
GET {BaseURL}/external/invoice/debitsubscription/{subscriptionId}?dueDate={dueDate}&referenceId={referenceId}&setInvoiceAsSent={setInvoiceAsSent}&hash={hash} subscriptionId: Abonnemangets ID (heltal), erhålls i svaret från "customers/{customerId}/subscriptions" dueDate: Vilket datum som ska sättas som förfallodatum på fakturan (krävs inte, räknas fram i BRP om det utesluts) referenceId: ID till en person som ska sättas som fakturareferens (krävs inte, hämtas från BRP om det utesluts) setInvoiceAsSent: Sätter status som "skickad" på fakturan. Används inte i hash beräkningen (krävs inte, default FALSE) hash: SHA-256 hash. Beräknas på parametrarnas värden samt ett hemligt ord (erhålls från BRP Support). subscriptionId + dueDate + referenceId + hemligt ord Exempel: subscriptionId=15 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å: 15SecretWord Vilket ger följande hash: 208dc6f2f25dbfcb918b0e60d9d965b5a82bbefb56f9afa64cbabc532216931f Exempel 2: subscriptionId=15 dueDate=2021-01-31 referenceId=8 setInvoiceAsSent=true hemligt ord: apor Ger följande sträng att beräkna hash på: 152021-01-318apor Vilket ger följande hash: 3a96c41b6cc068911dd8d5c8626f7ad4fe1de60cfd47716096379ae2df7ea32b
Respons exempel
{ "invoice":{ "id":14, "type":"REGULAR", "company":{ "id":1, "name":"Bolag 1" }, "number":12, "prefix":"", "ocr":"1248", "order":null, "customer":{ "id":79, "firstName":"Olga", "lastName":"Ordinarie" }, "organization":null, "reference":{ "id":70, "firstName":"Monika", "lastName":"Testsson" }, "message":null, "created":"2021-03-18T02:00:00.000Z", "dueDate":"2021-04-17", "totalAmount":{ "amount":50000, "currency":"SEK" }, "rest":{ "amount":50000, "currency":"SEK" }, "reminderFeeAmount":{ "amount":0, "currency":"SEK" }, "state":"STATE_SENT", "vatSums":[ { "rate":"25", "amount":{ "amount":10000, "currency":"SEK" } } ], "numberOfDebitAttempts":0 } }