Abonnements
Basis-URL: https://app.neuroflash.com/api/workspace-service
Zeigen Sie das aktuelle Abonnement für einen Workspace an.
Get
GET
/v1/workspaces/{workspaceId}/subscriptions/{subscriptionId}Antwort
FeldTypBeschreibung
_embeddedobject
availableWordsintegerVeraltet: Felder sind vorhanden, bis das Frontend alle Verwendungen entfernt Standardwerte werden verwendet, es werden keine Anpassungen vorgenommen! Es wird immer gemeldet, dass der Arbeitsbereich einen unbegrenzten Plan hatnewPricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarifplan bei bestehenden und neuen Abonnements konfiguriert werden kannbillingIntervalstringcategoryIdstringID der Kategorie, zu der dieser Plan gehörtdisplayNamestringName für interne Zwecke wie die Admin-UI oder HubSpot. Sollte Kunden nicht angezeigt werdenidstringID des TarifplansimportedFromLegacyIdintegerisDefaultbooleanIst dies der Standardplan für Neukunden?priceInEuronumberWie viel der Kunde für dieses Abonnement bezahlen musspricePerCurrencyobjectEine Zuordnung von Zeichenfolgenschlüsseln zu GleitkommawertenstripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarifplan im Stripe-Abrechnungsportal selbst verwaltet werden könnenstripePriceIdstringID des Preises in StripestripeTrackTokenMeterstringstripeTrackUsagebooleanVeraltettierintegertrialDaysintegerWie viele Testtage sind für diesen Plan zulässigpricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarifplan bei bestehenden und neuen Abonnements konfiguriert werden kannbillingIntervalstringcategoryIdstringID der Kategorie, zu der dieser Plan gehörtdisplayNamestringName für interne Zwecke wie die Admin-UI oder HubSpot. Sollte Kunden nicht angezeigt werdenidstringID des TarifplansimportedFromLegacyIdintegerisDefaultbooleanIst dies der Standardplan für Neukunden?priceInEuronumberWie viel der Kunde für dieses Abonnement bezahlen musspricePerCurrencyobjectEine Zuordnung von Zeichenfolgenschlüsseln zu GleitkommawertenstripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarifplan im Stripe-Abrechnungsportal selbst verwaltet werden könnenstripePriceIdstringID des Preises in StripestripeTrackTokenMeterstringstripeTrackUsagebooleanVeraltettierintegertrialDaysintegerWie viele Testtage sind für diesen Plan zulässigpricingPlanCategoryobject
displayNamestringidstringtranslationKeystringactivebooleanFlagge, die anzeigt, ob das Abonnement aktiv ist. Abonnements können inaktiv werden, wenn sie angehalten werden oder mehr Mitglieder haben, als der aktuelle Plan zulässtactiveDiscountsarray<string>readonly von Stripe synchronisiert: true, wenn ein Rabatt für dieses Stripe-Abonnement aktiv istavailableWordsintegercreatedAtstringcreatedByUserIdstringcurrencystringendDatestringreadonly von Stripe synchronisiert: Datum, an dem dieses Abonnement automatisch storniert wirdidstringimportedFromLegacyCustomerIdintegerVeraltet: wird nur benötigt, solange der Import aus der Legacy-API noch aktiv ist ID des Legacy-Kunden, aus dem dieser importiert wurdeisGracePeriodbooleantrue, wenn das Abonnement zu einem festgelegten zukünftigen Datum storniert wirdisTrialbooleantrue, wenn dies derzeit eine Testphase istlimitRenewalDatestringNächstes Datum, an dem die Limits (wie verfügbare Wörter, verfügbare Bilder usw.) zurückgesetzt werden. Dies geschieht monatlich, beginnend mit dem Start des AbonnementsnextSubscriptionCycleStartstringreadonly von Stripe synchronisiert: Zeitstempel, wenn der nächste Abrechnungszyklus beginnt. Dies ist NICHT zwingend der Zeitstempel, an dem wir die Limits in unserem System zurücksetzen, da wir sie monatlich zurücksetzen, auch wenn dies ein Jahresplan istpaymentCardNumberLastFourDigitsstringreadonly von Stripe synchronisiert: Die letzten vier Ziffern der Zahlungskartennummer. Verwendet die Standardzahlung des Abonnements mit Fallback zur Zahlung aus der letzten RechnungpaymentMethodCardBrandstringpaymentPausedbooleanreadonly von Stripe synchronisiert: true, wenn die Zahlungserfassung für dieses Abonnement derzeit angehalten ist. Obwohl Stripe beabsichtigt, dass diese Abonnements aktiv bleiben und nur für eine Weile kostenlos sind, behandeln wir Abonnements mit angehaltener Zahlung als inaktivpaymentTypestringpricingPlanIdstringpricingPlanWordsintegerVeraltet: Felder sind vorhanden, bis das Frontend alle Verwendungen entfernt Standardwerte werden verwendet, es werden keine Anpassungen vorgenommen! Es wird immer gemeldet, dass der Arbeitsbereich einen unbegrenzten Plan hatsepaPaymentFailedbooleanreadonly von Stripe synchronisiert: Kennzeichen, das anzeigt, ob die SEPA-Zahlung fehlgeschlagen istspilloverWordsintegerstripeStatusstringstripeSubscriptionIdstringStripe-Abonnement-IDstripeSubscriptionItemIdstringID des Abonnementelements in Stripe (Abonnements sollten nur ein Element haben)trialEndsAtstringreadonly von Stripe synchronisiert: Zeitstempel, wenn die Testphase endettrialStartedAtstringreadonly von Stripe synchronisiert: wenn eine Testphase läuft, Datum, wann sie begonnen hatupdatedAtstringusedWordsintegerworkspaceIdstringID des Arbeitsbereichs, zu dem dieses Abonnement gehörtBeispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/workspace-service/v1/workspaces/${workspaceId}/subscriptions/${subscriptionId}`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/workspace-service/v1/workspaces/"+workspaceID+"/subscriptions/"+subscriptionID+"", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"_embedded": {
"availableWords": 500,
"newPricingPlan": {
"active": false,
"billingInterval": "day",
"categoryId": "18d0035a-5850-4bf4-8d5d-3dc8684e2bb2",
"displayName": "Business Pro with 3 members",
"id": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"importedFromLegacyId": 0,
"isDefault": true,
"priceInEuro": 24.5,
"pricePerCurrency": {},
"stripeBillingPortalEnabled": false,
"stripePriceId": "price_123",
"stripeTrackTokenMeter": "string",
"stripeTrackUsage": false,
"tier": 5,
"trialDays": 7
},
"pricingPlan": {
"active": false,
"billingInterval": "day",
"categoryId": "18d0035a-5850-4bf4-8d5d-3dc8684e2bb2",
"displayName": "Business Pro with 3 members",
"id": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"importedFromLegacyId": 0,
"isDefault": true,
"priceInEuro": 24.5,
"pricePerCurrency": {},
"stripeBillingPortalEnabled": false,
"stripePriceId": "price_123",
"stripeTrackTokenMeter": "string",
"stripeTrackUsage": false,
"tier": 5,
"trialDays": 7
},
"pricingPlanCategory": {
"displayName": "string",
"id": "string",
"translationKey": "string"
}
},
"active": true,
"activeDiscounts": [
"string"
],
"availableWords": 500,
"createdAt": "2025-01-14T16:20:59Z",
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"currency": "aed",
"endDate": "string",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyCustomerId": 12345,
"isGracePeriod": false,
"isTrial": false,
"limitRenewalDate": "string",
"nextSubscriptionCycleStart": "2024-01-01T00:00:00Z",
"paymentCardNumberLastFourDigits": "4242",
"paymentMethodCardBrand": "amex",
"paymentPaused": false,
"paymentType": "acss_debit",
"pricingPlanId": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"pricingPlanWords": 10000,
"sepaPaymentFailed": false,
"spilloverWords": 500,
"stripeStatus": "active",
"stripeSubscriptionId": "sub_12345abcdef",
"stripeSubscriptionItemId": "sub_item_ad909w0",
"trialEndsAt": "2023-12-31T23:59:59Z",
"trialStartedAt": "string",
"updatedAt": "2025-01-14T16:20:59Z",
"usedWords": 5000,
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}
Update
PUT
/v1/workspaces/{workspaceId}/subscriptions/{subscriptionId}Beispiel
- cURL
- Python
- Node.js
- Go
curl -X PUT "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
import requests
response = requests.put(
f"https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/workspace-service/v1/workspaces/${workspaceId}/subscriptions/${subscriptionId}`,
{
method: "PUT",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
}
).then((r) => r.json());
body, _ := json.Marshal(map[string]any{})
req, _ := http.NewRequest("PUT", "https://app.neuroflash.com/api/workspace-service/v1/workspaces/"+workspaceID+"/subscriptions/"+subscriptionID+"", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Update
PATCH
/v1/workspaces/{workspaceId}/subscriptions/{subscriptionId}Beispiel
- cURL
- Python
- Node.js
- Go
curl -X PATCH "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
import requests
response = requests.patch(
f"https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/subscriptions/{subscription_id}",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/workspace-service/v1/workspaces/${workspaceId}/subscriptions/${subscriptionId}`,
{
method: "PATCH",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
}
).then((r) => r.json());
body, _ := json.Marshal(map[string]any{})
req, _ := http.NewRequest("PATCH", "https://app.neuroflash.com/api/workspace-service/v1/workspaces/"+workspaceID+"/subscriptions/"+subscriptionID+"", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Get current subscription
GET
/v1/workspaces/{workspaceId}/current-subscriptionAntwort
FeldTypBeschreibung
_embeddedobject
availableWordsintegerVeraltet: Felder sind vorhanden, bis das Frontend alle Verwendungen entfernt Standardwerte werden verwendet, es werden keine Anpassungen vorgenommen! Es wird immer gemeldet, dass der Arbeitsbereich einen unbegrenzten Plan hatnewPricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarifplan bei bestehenden und neuen Abonnements konfiguriert werden kannbillingIntervalstringcategoryIdstringID der Kategorie, zu der dieser Plan gehörtdisplayNamestringName für interne Zwecke wie die Admin-UI oder HubSpot. Sollte Kunden nicht angezeigt werdenidstringID des TarifplansimportedFromLegacyIdintegerisDefaultbooleanIst dies der Standardplan für Neukunden?priceInEuronumberWie viel der Kunde für dieses Abonnement bezahlen musspricePerCurrencyobjectEine Zuordnung von Zeichenfolgenschlüsseln zu GleitkommawertenstripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarifplan im Stripe-Abrechnungsportal selbst verwaltet werden könnenstripePriceIdstringID des Preises in StripestripeTrackTokenMeterstringstripeTrackUsagebooleanVeraltettierintegertrialDaysintegerWie viele Testtage sind für diesen Plan zulässigpricingPlanobject
activebooleanAuf true setzen, wenn dieser Tarifplan bei bestehenden und neuen Abonnements konfiguriert werden kannbillingIntervalstringcategoryIdstringID der Kategorie, zu der dieser Plan gehörtdisplayNamestringName für interne Zwecke wie die Admin-UI oder HubSpot. Sollte Kunden nicht angezeigt werdenidstringID des TarifplansimportedFromLegacyIdintegerisDefaultbooleanIst dies der Standardplan für Neukunden?priceInEuronumberWie viel der Kunde für dieses Abonnement bezahlen musspricePerCurrencyobjectEine Zuordnung von Zeichenfolgenschlüsseln zu GleitkommawertenstripeBillingPortalEnabledbooleantrue, wenn Abonnements mit diesem Tarifplan im Stripe-Abrechnungsportal selbst verwaltet werden könnenstripePriceIdstringID des Preises in StripestripeTrackTokenMeterstringstripeTrackUsagebooleanVeraltettierintegertrialDaysintegerWie viele Testtage sind für diesen Plan zulässigpricingPlanCategoryobject
displayNamestringidstringtranslationKeystringactivebooleanFlagge, die anzeigt, ob das Abonnement aktiv ist. Abonnements können inaktiv werden, wenn sie angehalten werden oder mehr Mitglieder haben, als der aktuelle Plan zulässtactiveDiscountsarray<string>readonly von Stripe synchronisiert: true, wenn ein Rabatt für dieses Stripe-Abonnement aktiv istavailableWordsintegercreatedAtstringcreatedByUserIdstringcurrencystringendDatestringreadonly von Stripe synchronisiert: Datum, an dem dieses Abonnement automatisch storniert wirdidstringimportedFromLegacyCustomerIdintegerVeraltet: wird nur benötigt, solange der Import aus der Legacy-API noch aktiv ist ID des Legacy-Kunden, aus dem dieser importiert wurdeisGracePeriodbooleantrue, wenn das Abonnement zu einem festgelegten zukünftigen Datum storniert wirdisTrialbooleantrue, wenn dies derzeit eine Testphase istlimitRenewalDatestringNächstes Datum, an dem die Limits (wie verfügbare Wörter, verfügbare Bilder usw.) zurückgesetzt werden. Dies geschieht monatlich, beginnend mit dem Start des AbonnementsnextSubscriptionCycleStartstringreadonly von Stripe synchronisiert: Zeitstempel, wenn der nächste Abrechnungszyklus beginnt. Dies ist NICHT zwingend der Zeitstempel, an dem wir die Limits in unserem System zurücksetzen, da wir sie monatlich zurücksetzen, auch wenn dies ein Jahresplan istpaymentCardNumberLastFourDigitsstringreadonly von Stripe synchronisiert: Die letzten vier Ziffern der Zahlungskartennummer. Verwendet die Standardzahlung des Abonnements mit Fallback zur Zahlung aus der letzten RechnungpaymentMethodCardBrandstringpaymentPausedbooleanreadonly von Stripe synchronisiert: true, wenn die Zahlungserfassung für dieses Abonnement derzeit angehalten ist. Obwohl Stripe beabsichtigt, dass diese Abonnements aktiv bleiben und nur für eine Weile kostenlos sind, behandeln wir Abonnements mit angehaltener Zahlung als inaktivpaymentTypestringpricingPlanIdstringpricingPlanWordsintegerVeraltet: Felder sind vorhanden, bis das Frontend alle Verwendungen entfernt Standardwerte werden verwendet, es werden keine Anpassungen vorgenommen! Es wird immer gemeldet, dass der Arbeitsbereich einen unbegrenzten Plan hatsepaPaymentFailedbooleanreadonly von Stripe synchronisiert: Kennzeichen, das anzeigt, ob die SEPA-Zahlung fehlgeschlagen istspilloverWordsintegerstripeStatusstringstripeSubscriptionIdstringStripe-Abonnement-IDstripeSubscriptionItemIdstringID des Abonnementelements in Stripe (Abonnements sollten nur ein Element haben)trialEndsAtstringreadonly von Stripe synchronisiert: Zeitstempel, wenn die Testphase endettrialStartedAtstringreadonly von Stripe synchronisiert: wenn eine Testphase läuft, Datum, wann sie begonnen hatupdatedAtstringusedWordsintegerworkspaceIdstringID des Arbeitsbereichs, zu dem dieses Abonnement gehörtBeispiel
- cURL
- Python
- Node.js
- Go
curl "https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/current-subscription" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
response = requests.get(
f"https://app.neuroflash.com/api/workspace-service/v1/workspaces/{workspace_id}/current-subscription",
headers={"Authorization": f"Bearer {token}"},
).json()
const response = await fetch(
`https://app.neuroflash.com/api/workspace-service/v1/workspaces/${workspaceId}/current-subscription`,
{ headers: { Authorization: `Bearer ${token}` } }
).then((r) => r.json());
req, _ := http.NewRequest("GET", "https://app.neuroflash.com/api/workspace-service/v1/workspaces/"+workspaceID+"/current-subscription", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
Antwort:
{
"_embedded": {
"availableWords": 500,
"newPricingPlan": {
"active": false,
"billingInterval": "day",
"categoryId": "18d0035a-5850-4bf4-8d5d-3dc8684e2bb2",
"displayName": "Business Pro with 3 members",
"id": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"importedFromLegacyId": 0,
"isDefault": true,
"priceInEuro": 24.5,
"pricePerCurrency": {},
"stripeBillingPortalEnabled": false,
"stripePriceId": "price_123",
"stripeTrackTokenMeter": "string",
"stripeTrackUsage": false,
"tier": 5,
"trialDays": 7
},
"pricingPlan": {
"active": false,
"billingInterval": "day",
"categoryId": "18d0035a-5850-4bf4-8d5d-3dc8684e2bb2",
"displayName": "Business Pro with 3 members",
"id": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"importedFromLegacyId": 0,
"isDefault": true,
"priceInEuro": 24.5,
"pricePerCurrency": {},
"stripeBillingPortalEnabled": false,
"stripePriceId": "price_123",
"stripeTrackTokenMeter": "string",
"stripeTrackUsage": false,
"tier": 5,
"trialDays": 7
},
"pricingPlanCategory": {
"displayName": "string",
"id": "string",
"translationKey": "string"
}
},
"active": true,
"activeDiscounts": [
"string"
],
"availableWords": 500,
"createdAt": "2025-01-14T16:20:59Z",
"createdByUserId": "b0920767-2e30-48d3-80ce-268810bc433a",
"currency": "aed",
"endDate": "string",
"id": "113c0b32-ed6c-4421-b7da-d1faf238eb56",
"importedFromLegacyCustomerId": 12345,
"isGracePeriod": false,
"isTrial": false,
"limitRenewalDate": "string",
"nextSubscriptionCycleStart": "2024-01-01T00:00:00Z",
"paymentCardNumberLastFourDigits": "4242",
"paymentMethodCardBrand": "amex",
"paymentPaused": false,
"paymentType": "acss_debit",
"pricingPlanId": "18d0045a-5850-4bf4-8d5d-3dc8684e2bb2",
"pricingPlanWords": 10000,
"sepaPaymentFailed": false,
"spilloverWords": 500,
"stripeStatus": "active",
"stripeSubscriptionId": "sub_12345abcdef",
"stripeSubscriptionItemId": "sub_item_ad909w0",
"trialEndsAt": "2023-12-31T23:59:59Z",
"trialStartedAt": "string",
"updatedAt": "2025-01-14T16:20:59Z",
"usedWords": 5000,
"workspaceId": "550e8400-e29b-41d4-a716-446655440000"
}