Zum Hauptinhalt springen

Abrechnung

Basis-URL: https://app.neuroflash.com/api/workspace-service

Verwalten Sie Abrechnungskontakte und greifen Sie auf das Stripe-Abrechnungsportal zu.

Erstellt eine Stripe-Checkout-Sitzung, mit der ein Kunde das Abonnement seines Arbeitsbereichs in einem eingebetteten Modal auf einen anderen Preis aktualisieren kann

POST/v1/workspaces/{workspaceId}/billing-contacts/{billingContactId}/stripe-checkout-sessions

Pfadparameter

ParameterTypErforderlichBeschreibung
workspaceIdstringJaArbeitsbereichs-ID
billingContactIdstringJaAbrechnungskontakt-ID

Anfrage-Body

FeldTypErforderlichBeschreibung
callbackUrlstringJaURL, zu der nach erfolgreichem Checkout umgeleitet werden soll
languagestringNeinSprache, in der die Checkout-Sitzung geöffnet werden soll. Standardmäßig die Sprache des authentifizierten Kunden
legacyPricingPlanIdintegerNeinveraltete ID des Preisplans, für den ein Abonnement erstellt werden soll
pricingPlanIdstringNein

Antwort

FeldTypBeschreibung
_embeddedobject
couponobject
_embeddedobject
pricingPlanobject
activebooleanauf true gesetzt, wenn dieser Tarif in bestehenden und neuen Abonnements konfiguriert werden kann
billingIntervalstring
categoryIdstringID der Kategorie, zu der dieser Tarif gehört
displayNamestringName für interne Zwecke wie die Admin-Benutzeroberfläche oder Hubspot. Sollte nicht für Kunden angezeigt werden
idstringID des Tarifs
importedFromLegacyIdinteger
isDefaultbooleanIst dies der Standard-Tarif für neue Kunden?
priceInEuronumberwie viel der Kunde für dieses Abonnement bezahlen muss
pricePerCurrencyobjectEine Zuordnung von Zeichenkettenschlüsseln zu Gleitkommawerten
stripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarif im Stripe-Abrechnungsportal selbst verwaltet werden können
stripePriceIdstringID des Preises in Stripe
stripeTrackUsagebooleanwenn true, sollte die Nutzung für Abonnements mit diesem Tarif in Stripe nachverfolgt werden
tierinteger
trialDaysintegerwie viele Testtage für diesen Tarif zulässig sind
pricingPlanCategoryobject
displayNamestring
idstring
translationKeystring
discountPercentagenumber
legacyPricingPlanIdinteger
pricingPlanIdstring
translationKeystring
callbackUrlstringURL, zu der nach erfolgreichem Checkout umgeleitet werden soll
languagestringSprache, in der die Checkout-Sitzung geöffnet werden soll. Standardmäßig die Sprache des authentifizierten Kunden
legacyPricingPlanIdintegerveraltete ID des Preisplans, für den ein Abonnement erstellt werden soll
pricingPlanIdstring
statusstring
stripeClientSecretstringClient Secret für diese Checkout-Sitzung. Wird nur direkt nach der Erstellung gesetzt
stripePriceIdstringStripe ID des Preises aus dem neuen Abonnement, das ausgecheckt wird
stripeSubscriptionIdstringID des Stripe-Abonnements, das in diesem Checkout abonniert wird

Beispiel

curl -X POST "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/billing-contacts/{billing_contact_id}/stripe-checkout-sessions" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUrl": "string",
"language": "string",
"legacyPricingPlanId": 0,
"pricingPlanId": "string"
}'

Antwort:

{
"_embedded": {
"coupon": {
"_embedded": {
"pricingPlan": {
"active": "...",
"billingInterval": "...",
"categoryId": "...",
"displayName": "...",
"id": "...",
"importedFromLegacyId": "...",
"isDefault": "...",
"priceInEuro": "...",
"pricePerCurrency": "...",
"stripeBillingPortalEnabled": "...",
"stripePriceId": "...",
"stripeTrackUsage": "...",
"tier": "...",
"trialDays": "..."
},
"pricingPlanCategory": {
"displayName": "...",
"id": "...",
"translationKey": "..."
}
},
"discountPercentage": 0,
"legacyPricingPlanId": 0,
"pricingPlanId": "string",
"translationKey": "string"
}
},
"callbackUrl": "https://app.neuroflash.com/payment-callback?session_id={CHECKOUT_SESSION_ID}",
"language": "de",
"legacyPricingPlanId": 150,
"pricingPlanId": "string",
"status": "complete",
"stripeClientSecret": "string",
"stripePriceId": "string",
"stripeSubscriptionId": "string"
}

Aktuellen Abrechnungskontakt für einen Arbeitsbereich abrufen

GET/v1/workspaces/{workspaceId}/billing-contacts/{billingContactId}

Pfadparameter

ParameterTypErforderlichBeschreibung
workspaceIdstringJaArbeitsbereichs-ID

Antwort

FeldTypBeschreibung
activeDiscountstringschreibgeschützt von Stripe synchronisiert: true, wenn ein Rabatt für diesen Stripe-Kunden aktiv ist
addressLine1stringschreibgeschützt von Stripe synchronisiert: erste Zeile der Adressen des Abrechnungskontakts
addressLine2stringschreibgeschützt von Stripe synchronisiert: zweite Zeile der Adressen des Abrechnungskontakts
citystringschreibgeschützt von Stripe synchronisiert: Stadt des Abrechnungskontakts
countrystringschreibgeschützt von Stripe synchronisiert: Land des Abrechnungskontakts
createdAtstring
createdByUserIdstring
defaultPaymentCardNumberLastFourDigitsstring
defaultPaymentMethodstring
defaultPaymentMethodCardBrandstring
emailstringE-Mail-Adresse des Abrechnungskontakts
idstring
importedFromLegacyCustomerIdintegerVeraltet: nur erforderlich, während der Import aus der Legacy-API noch aktiv ist
namestringName des Abrechnungskontakts
postalCodestringschreibgeschützt von Stripe synchronisiert: Postleitzahl des Abrechnungskontakts
statestringschreibgeschützt von Stripe synchronisiert: Bundesland des Abrechnungskontakts
stripeCustomerIdstringStripe-Kunden-ID für Abrechnungszwecke. Könnte optional werden, wenn wir weitere Zahlungsanbieter hinzufügen
updatedAtstring

Beispiel

curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/billing-contacts/{billing_contact_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Antwort:

{
"activeDiscount": "string",
"addressLine1": "123 Main St",
"addressLine2": "123 Main St",
"city": "Berlin",
"country": "DE",
"createdAt": "2025-01-14T16:20:59Z",
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"defaultPaymentCardNumberLastFourDigits": "1234",
"defaultPaymentMethod": "acss_debit",
"defaultPaymentMethodCardBrand": "amex",
"email": "max.mustermann@neuroflash.com",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyCustomerId": 12345,
"name": "Max Mustermann",
"postalCode": "12345",
"state": "Schleswig-Holstein",
"stripeCustomerId": "cus_12345abcdef",
"updatedAt": "2025-01-14T16:20:59Z"
}

erstellt eine Checkout-Sitzung in Stripe. Checkout-Sitzungen können verwendet werden, um einem Kunden den Wechsel von Preisplänen mit einer eingebetteten Ansicht zu ermöglichen, was praktischer ist als eine Umleitung zum Stripe-Portal

GET/v1/workspaces/{workspaceId}/billing-contacts/{billingContactId}/stripe-checkout-sessions/{sessionId}

Pfadparameter

ParameterTypErforderlichBeschreibung
workspaceIdstringJaArbeitsbereichs-ID
billingContactIdstringJaAbrechnungskontakt-ID
sessionIdstringJaStripe Session ID

Antwort

FeldTypBeschreibung
_embeddedobject
couponobject
_embeddedobject
pricingPlanobject
activebooleanauf true gesetzt, wenn dieser Tarif in bestehenden und neuen Abonnements konfiguriert werden kann
billingIntervalstring
categoryIdstringID der Kategorie, zu der dieser Tarif gehört
displayNamestringName für interne Zwecke wie die Admin-Benutzeroberfläche oder Hubspot. Sollte nicht für Kunden angezeigt werden
idstringID des Tarifs
importedFromLegacyIdinteger
isDefaultbooleanIst dies der Standard-Tarif für neue Kunden?
priceInEuronumberwie viel der Kunde für dieses Abonnement bezahlen muss
pricePerCurrencyobjectEine Zuordnung von Zeichenkettenschlüsseln zu Gleitkommawerten
stripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarif im Stripe-Abrechnungsportal selbst verwaltet werden können
stripePriceIdstringID des Preises in Stripe
stripeTrackUsagebooleanwenn true, sollte die Nutzung für Abonnements mit diesem Tarif in Stripe nachverfolgt werden
tierinteger
trialDaysintegerwie viele Testtage für diesen Tarif zulässig sind
pricingPlanCategoryobject
displayNamestring
idstring
translationKeystring
discountPercentagenumber
legacyPricingPlanIdinteger
pricingPlanIdstring
translationKeystring
callbackUrlstringURL, zu der nach erfolgreichem Checkout umgeleitet werden soll
languagestringSprache, in der die Checkout-Sitzung geöffnet werden soll. Standardmäßig die Sprache des authentifizierten Kunden
legacyPricingPlanIdintegerveraltete ID des Preisplans, für den ein Abonnement erstellt werden soll
pricingPlanIdstring
statusstring
stripeClientSecretstringClient Secret für diese Checkout-Sitzung. Wird nur direkt nach der Erstellung gesetzt
stripePriceIdstringStripe ID des Preises aus dem neuen Abonnement, das ausgecheckt wird
stripeSubscriptionIdstringID des Stripe-Abonnements, das in diesem Checkout abonniert wird

Beispiel

curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/billing-contacts/{billing_contact_id}/stripe-checkout-sessions/{session_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Antwort:

{
"_embedded": {
"coupon": {
"_embedded": {
"pricingPlan": {
"active": "...",
"billingInterval": "...",
"categoryId": "...",
"displayName": "...",
"id": "...",
"importedFromLegacyId": "...",
"isDefault": "...",
"priceInEuro": "...",
"pricePerCurrency": "...",
"stripeBillingPortalEnabled": "...",
"stripePriceId": "...",
"stripeTrackUsage": "...",
"tier": "...",
"trialDays": "..."
},
"pricingPlanCategory": {
"displayName": "...",
"id": "...",
"translationKey": "..."
}
},
"discountPercentage": 0,
"legacyPricingPlanId": 0,
"pricingPlanId": "string",
"translationKey": "string"
}
},
"callbackUrl": "https://app.neuroflash.com/payment-callback?session_id={CHECKOUT_SESSION_ID}",
"language": "de",
"legacyPricingPlanId": 150,
"pricingPlanId": "string",
"status": "complete",
"stripeClientSecret": "string",
"stripePriceId": "string",
"stripeSubscriptionId": "string"
}

Abrechnungskontakt aktualisieren

PUT/v1/workspaces/{workspaceId}/billing-contacts/{billingContactId}

Abrechnungskontakt aktualisieren

Anfrage-Body

FeldTypErforderlichBeschreibung
activeDiscountstringNeinschreibgeschützt von Stripe synchronisiert: true, wenn ein Rabatt für diesen Stripe-Kunden aktiv ist
addressLine1stringNeinschreibgeschützt von Stripe synchronisiert: erste Zeile der Adressen des Abrechnungskontakts
addressLine2stringNeinschreibgeschützt von Stripe synchronisiert: zweite Zeile der Adressen des Abrechnungskontakts
citystringNeinschreibgeschützt von Stripe synchronisiert: Stadt des Abrechnungskontakts
countrystringNeinschreibgeschützt von Stripe synchronisiert: Land des Abrechnungskontakts
defaultPaymentCardNumberLastFourDigitsstringNein
defaultPaymentMethodstringNein
defaultPaymentMethodCardBrandstringNein
emailstringJaE-Mail-Adresse des Abrechnungskontakts
namestringJaName des Abrechnungskontakts
postalCodestringNeinschreibgeschützt von Stripe synchronisiert: Postleitzahl des Abrechnungskontakts
statestringNeinschreibgeschützt von Stripe synchronisiert: Bundesland des Abrechnungskontakts

Antwort

FeldTypBeschreibung
activeDiscountstringschreibgeschützt von Stripe synchronisiert: true, wenn ein Rabatt für diesen Stripe-Kunden aktiv ist
addressLine1stringschreibgeschützt von Stripe synchronisiert: erste Zeile der Adressen des Abrechnungskontakts
addressLine2stringschreibgeschützt von Stripe synchronisiert: zweite Zeile der Adressen des Abrechnungskontakts
citystringschreibgeschützt von Stripe synchronisiert: Stadt des Abrechnungskontakts
countrystringschreibgeschützt von Stripe synchronisiert: Land des Abrechnungskontakts
createdAtstring
createdByUserIdstring
defaultPaymentCardNumberLastFourDigitsstring
defaultPaymentMethodstring
defaultPaymentMethodCardBrandstring
emailstringE-Mail-Adresse des Abrechnungskontakts
idstring
importedFromLegacyCustomerIdintegerVeraltet: nur erforderlich, während der Import aus der Legacy-API noch aktiv ist
namestringName des Abrechnungskontakts
postalCodestringschreibgeschützt von Stripe synchronisiert: Postleitzahl des Abrechnungskontakts
statestringschreibgeschützt von Stripe synchronisiert: Bundesland des Abrechnungskontakts
stripeCustomerIdstringStripe-Kunden-ID für Abrechnungszwecke. Könnte optional werden, wenn wir weitere Zahlungsanbieter hinzufügen
updatedAtstring

Beispiel

curl -X PUT "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/billing-contacts/{billing_contact_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"activeDiscount": "string",
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"country": "string",
"defaultPaymentCardNumberLastFourDigits": "string",
"defaultPaymentMethod": "string",
"defaultPaymentMethodCardBrand": "string",
"email": "string",
"name": "string",
"postalCode": "string",
"state": "string"
}'

Antwort:

{
"activeDiscount": "string",
"addressLine1": "123 Main St",
"addressLine2": "123 Main St",
"city": "Berlin",
"country": "DE",
"createdAt": "2025-01-14T16:20:59Z",
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"defaultPaymentCardNumberLastFourDigits": "1234",
"defaultPaymentMethod": "acss_debit",
"defaultPaymentMethodCardBrand": "amex",
"email": "max.mustermann@neuroflash.com",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyCustomerId": 12345,
"name": "Max Mustermann",
"postalCode": "12345",
"state": "Schleswig-Holstein",
"stripeCustomerId": "cus_12345abcdef",
"updatedAt": "2025-01-14T16:20:59Z"
}