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 in seinem Arbeitsbereich zu einem anderen Preis in einem eingebetteten Modal erstellen/aktualisieren kann

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

Pfadparameter

ParameterTypErforderlichBeschreibung
workspaceIdstringJaArbeitsbereich-ID
billingContactIdstringJaAbrechnungskontakt-ID

Anfrage-Body

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

Antwort

FeldTypBeschreibung
_embeddedobject
couponobject
_embeddedobject
pricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarif bei 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-UI oder HubSpot. Sollte nicht für Kunden angezeigt werden
idstringID des Tarifs
importedFromLegacyIdinteger
isDefaultbooleanIst dies der Standardtarif für neue Kunden?
priceInEuronumberBetrag, den der Kunde für dieses Abonnement zahlen muss
pricePerCurrencyobjectEine Zuordnung von String-Schlüsseln zu Float-Werten
stripeBillingPortalEnabledbooleanTrue, wenn Abonnements mit diesem Tarif selbst im Stripe-Abrechnungsportal verwaltet werden können
stripePriceIdstringID des Preises in Stripe
stripeTrackTokenMeterstring
stripeTrackUsagebooleanVeraltet
tierinteger
trialDaysintegerAnzahl der Testtage, die für diesen Tarif zulässig sind
pricingPlanCategoryobject
displayNamestring
idstring
translationKeystring
discountPercentagenumber
legacyPricingPlanIdinteger
pricingPlanIdstring
translationKeystring
callbackUrlstringURL, zu der nach erfolgreichem Checkout weitergeleitet werden soll
languagestringSprache, in der die Checkout-Sitzung geöffnet werden soll. Standardmäßig die Sprache des authentifizierten Kunden
legacyPricingPlanIdintegerveraltete ID des Tarifs, für den ein Abonnement erstellt werden soll
pricingPlanIdstring
statusstring
stripeClientSecretstringClient-Geheimnis 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": "...",
"stripeTrackTokenMeter": "...",
"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
workspaceIdstringJaArbeitsbereich-ID

Antwort

FeldTypBeschreibung
activeDiscountstringSchreibgeschützt von Stripe synchronisiert: true, wenn für diesen Stripe-Kunden ein Rabatt aktiv ist
addressLine1stringSchreibgeschützt von Stripe synchronisiert: Erste Zeile der Adresse des Abrechnungskontakts
addressLine2stringSchreibgeschützt von Stripe synchronisiert: Zweite Zeile der Adresse 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, solange der Import von der Legacy-API noch aktiv ist ID des Legacy-Kunden, von dem dies importiert wurde
namestringName des Abrechnungskontakts
postalCodestringSchreibgeschützt, synchronisiert von Stripe: Postleitzahl des Abrechnungskontakts
statestringSchreibgeschützt, synchronisiert von Stripe: Bundesland des Abrechnungskontakts
stripeCustomerIdstringStripe-Kunden-ID für Abrechnungszwecke. Könnte optional werden, wenn wir andere 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 einen Kunden mit einer eingebetteten Ansicht zum Wechsel von Tarifen zu bewegen, was bequemer ist als eine Umleitung zum Stripe-Portal

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

Pfadparameter

ParameterTypErforderlichBeschreibung
workspaceIdstringJaArbeitsbereich-ID
billingContactIdstringJaAbrechnungskontakt-ID
sessionIdstringJaStripe-Sitzungs-ID

Antwort

FeldTypBeschreibung
_embeddedobject
couponobject
_embeddedobject
pricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarif bei 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-UI oder HubSpot. Sollte nicht für Kunden angezeigt werden
idstringID des Tarifs
importedFromLegacyIdinteger
isDefaultbooleanIst dies der Standardtarif für neue Kunden?
priceInEuronumberBetrag, den der Kunde für dieses Abonnement zahlen muss
pricePerCurrencyobjectEine Zuordnung von String-Schlüsseln zu Float-Werten
stripeBillingPortalEnabledbooleanTrue, wenn Abonnements mit diesem Tarif selbst im Stripe-Abrechnungsportal verwaltet werden können
stripePriceIdstringID des Preises in Stripe
stripeTrackTokenMeterstring
stripeTrackUsagebooleanVeraltet
tierinteger
trialDaysintegerAnzahl der Testtage, die für diesen Tarif zulässig sind
pricingPlanCategoryobject
displayNamestring
idstring
translationKeystring
discountPercentagenumber
legacyPricingPlanIdinteger
pricingPlanIdstring
translationKeystring
callbackUrlstringURL, zu der nach erfolgreichem Checkout weitergeleitet werden soll
languagestringSprache, in der die Checkout-Sitzung geöffnet werden soll. Standardmäßig die Sprache des authentifizierten Kunden
legacyPricingPlanIdintegerveraltete ID des Tarifs, für den ein Abonnement erstellt werden soll
pricingPlanIdstring
statusstring
stripeClientSecretstringClient-Geheimnis 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": "...",
"stripeTrackTokenMeter": "...",
"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"
}

Einen Abrechnungskontakt aktualisieren

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

Einen Abrechnungskontakt aktualisieren

Anfrage-Body

FeldTypErforderlichBeschreibung
activeDiscountstringNeinSchreibgeschützt von Stripe synchronisiert: true, wenn für diesen Stripe-Kunden ein Rabatt aktiv ist
addressLine1stringNeinSchreibgeschützt von Stripe synchronisiert: Erste Zeile der Adresse des Abrechnungskontakts
addressLine2stringNeinSchreibgeschützt von Stripe synchronisiert: Zweite Zeile der Adresse 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, synchronisiert von Stripe: Postleitzahl des Abrechnungskontakts
statestringNeinSchreibgeschützt, synchronisiert von Stripe: Bundesland des Abrechnungskontakts

Antwort

FeldTypBeschreibung
activeDiscountstringSchreibgeschützt von Stripe synchronisiert: true, wenn für diesen Stripe-Kunden ein Rabatt aktiv ist
addressLine1stringSchreibgeschützt von Stripe synchronisiert: Erste Zeile der Adresse des Abrechnungskontakts
addressLine2stringSchreibgeschützt von Stripe synchronisiert: Zweite Zeile der Adresse 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, solange der Import von der Legacy-API noch aktiv ist ID des Legacy-Kunden, von dem dies importiert wurde
namestringName des Abrechnungskontakts
postalCodestringSchreibgeschützt, synchronisiert von Stripe: Postleitzahl des Abrechnungskontakts
statestringSchreibgeschützt, synchronisiert von Stripe: Bundesland des Abrechnungskontakts
stripeCustomerIdstringStripe-Kunden-ID für Abrechnungszwecke. Könnte optional werden, wenn wir andere 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"
}