Erbringe ich als App Builder für meine Kunden Leistungen, möchte ich dafür natürlich auch bezahlt werden. Im Rahmen der d.velop cloud Plattform kümmert sich d.velop um die Rechnungs- und Zahlungsabwicklung mit dem Endkunden.

Der App Builder muss dazu nur sein Abrechnungsmodell finden, seine Preise definieren und natürlich mitzählen, für welche Kunden und in welchem Umfang er Leistungen erbracht hat.

Damit du dich nicht immer und immer wieder damit beschäftigen musst, Berichte manuell zu erstellen und an d.velop zu senden, haben wir nun die erste Version des d.velop cloud billing veröffentlicht.


Das d.velop cloud billing erlaubt es dir, als Teil der Beschreibung deiner App im d.velop cloud center nun auch anzugeben nach welchen Metriken seine App abrechnet und wieviel jede Einheit dieser Metriken kostet.

Hast du das getan, kannst du die API des d.velop cloud billing verwenden, um Nutzungsdaten zu melden. Im d.velop cloud billing werden diese Meldungen persistiert und monatlich aggregiert. Zum Ende des Monats werden diese aggregierten Daten dann automatisch zum Kunden abgerechnet.


Praxisbeispiel

In diesem fiktiven Beispiel haben wir als App Builder eine App gebaut, die für den Kunden Urlaubsanträge verwaltet.

Je mehr Benutzer beim Kunden diese App nutzen, desto größer ist auch der Mehrwert für den Kunden. Wir entscheiden uns für diesen konstruierten Fall, diese Anwendung nach der Anzahl Benutzer zu bepreisen. Jeder Benutzer soll 2,50 € im Monat kosten.


Schritt 1: Definieren einer Preisliste

Im d.velop cloud center navigieren wir zu den Einstellungen unserer App. Dort finden wir den Abschnitt "Preisgestaltung". Hier können wir zwei Dinge konfigurieren:

  • Die Metriken, nach denen abgerechnet wird
  • Die Darstellung der Preise im d.velop store
Abrechnungsmetriken

Als erstes definieren wir unsere Preismetriken. Wir klicken dazu auf die Schaltfläche "METRIKEN" und erstellen eine neue Preisliste.

Da ein Preis "pro Benutzer" für viele Kunden ein leicht nachvollziehbares und planbares Modell ist, wird dies bereits vorgeschlagen. Wir tragen den Preis von 2,50 € pro Benutzer ein:



Den hier angezeigten Metrik-Schlüssel "UserMonth" notieren ihn für später. Er ist beliebig wählbar, solange er für unsere App eindeutig ist, und wird bei der Nutzung der Billing API verwendet, um zuzuordnen, welche Art von Nutzung verbucht werden soll.

Da die hier angegebenen Metriken zukünftig auch als Rechnungsvorschau dem Kunden dargestellt werden, müssen die natürlich auch übersetzt werden.

Nachdem wir noch einmal prüfen, ob alle unsere Angaben korrekt sind, können wir die Preisliste aktivieren. Alle Kunden, die ab diesem Zeitpunkt unsere App buchen, werden automatisch dieser Preisliste zugeordnet.

Werden Metriken dem d.velop cloud billing angeliefert, die beim jeweiligen Mandanten nicht in der Preisliste vorhanden sind, werden diese als "abgelehnt" zurückgemeldet und verworfen. So kann der App Builder jederzeit sein Preismodell für neue Kunden anpassen. Er kann dann aus seiner Software einfach Nutzungsdaten zu den alten und den neuen Metriken anliefern, das d.velop cloud billing verwendet dann nur die jeweils gültigen Metriken.


Preisdarstellung im d.velop store

Nachdem wir die Preisliste definiert haben können wir zur Einstellungsseite der App zurückkehren. In den Einstellungen zur Preisgestaltung passen wir nun die "Preisübersicht" an.

Da wir ein einfaches Preismodell verwenden, können wir die Preise automatisch aus den Preislisten-Metriken darstellen lassen. Dazu wählen wir "aus Metriken übernehmen". Optional kann noch ein Text angegeben werden, um Besonderheiten bei der Abrechnung zu erläutern.



Hätten wir ein komplexeres Preismodell, um zum Beispiel Pakete abzubilden, könnten wir mit der Einstellung "Freitext" unsere Metrik indiviell beschreiben und hätten alle Gestaltungsmöglichkeiten zur Verfügung, die wir auch in der Beschreibung unserer App nutzen können.

Nach Klick auf "Speichern" sind wir mit den konfigurativen Tätigkeiten fertig.


Schritt 2: Anbinden der Billing-API

Wir haben definiert, nach welchem Modell wir abrechnen möchten und dies auch für den Kunden im d.velop store dargestellt. Nun müssen wir dies natürlich auch in unsere Software aufnehmen, sodass wirklich erbrachte Leistungen gemeldet werden..

Unsere Beispiel-App zur Verwaltung von Urlaubsanträgen bietet für die Personalabteilung eine Liste der Mitarbeiter, die diesen Monat Urlaub genommen haben. Praktisch für uns: Immer wenn wir in diese Liste einen neuen Eintrag machen, können wir dies auch an das d.velop cloud billing melden (wink).

Als erstes muss unsere App über eine gültige App-Session des d.velop identity provider verfügen. Weitere Informationen hierzu sind in der Dokumentation zum d.velop identity provider zu finden.

Mit dieser Authsession kann die App nun einen HTTP-Request an das d.velop cloud billing senden:

   POST /billing/metering/usage
Origin: [...]
Authorization: [...]
Content-Type: application/json

{
  "usage": [
    {
      "metric": “UserMonth”,
      "quantity": 1,
      "timestamp": „NOW“
    },
  ]
}


Was melden wir hier?

  • Es wird nur eine Leistung einer Metrik gemeldet. Hier könnten auch Leistungen unterschiedlicher Metriken gleichzeitig gemeldet werden.
  • Es wurde eine einzelne Einheit geleistet ("quantity": 1).
  • Die der Metrik hat den Schlüssel UserMonth, den wir uns zuvor bei der Anlage der Metrik notiert haben ("metric": "UserMonth") .
  • Die Leistung wurde zum Zeitpunkt NOW erbracht. Dies wird vom d.velop cloud billing automatisch durch den aktuellen Zeitstempel ersetzt ("timestamp": "NOW")

In der Antwort des d.velop cloud billing können wir sehen, dass die Meldung angenommen und verarbeitet wurde:

   {
  "consumed": [
    { 
      "metric": “UserMonth”,
      "quantity": 1,
      "timestamp": „NOW“
    },
   ],
   "rejected": []
}


Und das war es schon.

Nach Monatsabschluss wird dies dann dem Kunden in Rechnung gestellt und und wir als App Builder bekommen unseren Anteil ausgezahlt.

Fragen oder Feedback?

Ihr habt Rückfragen oder andere Anregungen? Super!

Wendet euch am besten direkt an euren d.velop solutions architect!