# Abonnements mithilfe der Stripe-APIs zu Stripe Billing migrieren Erfahren Sie, wie Sie Ihre bestehenden Abonnements mithilfe der Stripe-APIs zu Stripe migrieren. So migrieren Sie Ihre bestehenden *Abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) von einem Drittanbieter, einem internen System oder einem vorhandenen Stripe-Konto mithilfe der Stripe-APIs zu Stripe Billing. ## Bevor Sie beginnen 1. Falls noch nicht geschehen, schauen Sie sich die einzelnen [Migrationsphasen](https://docs.stripe.com/billing/subscriptions/migrate-subscriptions.md) an. 1. [Richten Sie eine Stripe Billing-Integration](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md) ein. Diese Voraussetzung ist vor dem Import von Abonnements in Stripe nur einmal erforderlich und Sie müssen sie für zukünftige Migrationen nicht wiederholen. 1. [Fordern Sie einen PAN-Datenimport](https://docs.stripe.com/get-started/data-migrations/pan-import.md) von Ihrem aktuellen Abwickler an. Wenn die Daten innerhalb von Stripe migriert werden, ist dies nicht erforderlich, da Stripe bereits die Zahlungen für Sie abwickelt. ## Ältere Produkte und Preise verwalten Wenn Sie *ältere* (Technology that's no longer recommended) *Preismodelle* (The pricing model consists of the products or services you sell, how much they cost, what currency you accept for payments, and the service period to charge (for subscriptions). To build the pricing model, you use Products—what you sell—and Prices—how much and how often to charge for your products) haben, die Sie weiterhin in Stripe unterstützen müssen, erstellen Sie ein Platzhalterprodukt, wie z. B. `Legacy plan`. Hier ist ein Beispiel: ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ -d id={{NEW_PRODUCT_ID}} \ -d "name=Legacy plan" \ -d "description=Imported legacy plan from source system" \ -d "metadata[OLD_PRODUCT_ID]={{OLD_PRODUCT_ID}}" ``` Wenn Sie Abonnements mit älteren Plänen aktualisieren müssen, übergeben Sie die Preise nach Bedarf mithilfe von `items.price_data`. Dadurch werden alle bestehenden alten Preise überschrieben. Weitere Informationen finden Sie unter [variable Preise](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#variable-pricing). ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "items[0][price_data][currency]=USD" \ -d "items[0][price_data][product]={{PRODUCT_ID}}" \ -d "items[0][price_data][recurring][interval]=month" \ -d "items[0][price_data][recurring][interval_count]=3" \ -d "items[0][price_data][unit_amount]=1000" \ -d "items[0][quantity]=1" ``` ## Abonnements importieren Nachdem Sie Ihre Kunden/Kundinnen importiert und ein Preismodell erstellt haben, können Sie mit dem Import Ihrer Abonnements starten. Es sollte möglich sein, Abonnementdaten von Drittsystemen über deren Nutzeroberfläche oder API zu exportieren. Kontaktieren Sie Ihren Abonnementanbieter, wenn dieser die Option über keine der beiden Schnittstellen bereitstellt. Verwenden Sie zum Importieren von Abonnements Ihre Kundenliste, um jeweils die entsprechenden Abonnements zu erstellen. Wenn beispielsweise eine Abonnentin / ein Abonnent in Ihrem alten Modell über ein monatliches `Basic`-Abonnement verfügt, verwenden Sie den mit dieser Preisstufe verknüpften monatlich wiederkehrenden Preis, wenn Sie das Abonnement in Stripe erstellen. ### Quelldaten müssen mit Stripe kompatibel sein Stellen Sie vor dem Import von Abonnements in Stripe sicher, dass alle Ihre Quelldaten mit dem erwarteten Format von Stripe kompatibel sind. #### Wichtige Felder für die Migration von Abonnements Wenn Sie relevante Abonnementdaten in Ihrer nutzerdefinierten Integration verwenden, die Stripe nicht ebenfalls verwendet, können Sie Ihre Daten auf das Feld `metadata` der von Ihnen in Stripe erstellten Abonnements anwenden. In der folgenden Tabelle werden andere wichtige Felder beschrieben, die beim Importieren von Abonnements berücksichtigt werden müssen. | Feld | Beschreibung | | ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Kundin/Kunde](https://docs.stripe.com/api/subscription_schedules/object.md#subscription_schedule_object-customer) | Stellen Sie sicher, dass die Kunden-ID aus Ihren Quelldaten ordnungsgemäß der neuen Kunden-ID in Stripe zugeordnet wurde. | | [phases.items.price](https://docs.stripe.com/api/subscription_schedules/object.md#subscription_schedule_object-phases-items-price) | Stellen Sie sicher, dass die Preis-ID aus Ihren Quelldaten der neuen Preis-ID in Stripe zugeordnet wurde. | | [current_phase.start_date](https://docs.stripe.com/api/subscription_schedules/object.md#subscription_schedule_object-current_phase-start_date) | Achten Sie darauf, dass der Abonnementzeitplan, den Sie in Stripe angeben, mit Ihren ursprünglichen Quelldaten übereinstimmt und deren Kontinuität beibehält. Wenn einer Kundin oder einem Kunden beispielsweise noch 6 Monate eines Jahresabonnements in Ihrem Quellsystem verbleiben, stellen Sie sicher, dass `billing_cycle_anchor` und `start_date` die korrekte Laufzeit in der Zyklusmitte widerspiegeln. | | Drittanbieter-Metadaten | Importieren Sie alle zusätzlichen Datenfelder aus Ihren Quelldaten. Diese können Produktnamen, Plannamen und Anwendungs-IDs von Drittanbietern umfassen. | | Steuereinstellungen | Geben Sie sämtliche Steuer-IDs, Umsatzsteuer-IDs oder andere Steuerinformationen an. | #### Ältere Preise vorbereiten Wenn Sie Platzhalter für [ältere Preise](https://docs.stripe.com/billing/subscriptions/import-subscriptions.md#legacy-prices) erstellt haben, müssen Sie diese Preise den Abonnements und Kunden/Kundinnen zuordnen, die Sie importieren. Verwenden Sie für jedes Abonnement mit einem alten Preis den Parameter [price_data](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data) der [Subscriptions](https://docs.stripe.com/api/subscriptions.md#subscriptions) API, um Informationen über den Preis und das Abonnement zu übergeben. Verpflichtend sind folgende Felder: | Parameter | Beschreibung | | --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Währung](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-currency) | Währung des Preises im ISO-Format mit drei Buchstaben. | | [Produkt](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-product) | ID des Platzhalterprodukts. Diese kann für alle alten Preise verwendet werden. | | [wiederkehrend](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-recurring) | Informationen über Betrag und Häufigkeit des wiederkehrenden Preises. | | [recurring.interval](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-recurring) | Häufigkeit des Intervalls – `day`, `week`, `month` oder `year`. | | [recurring.interval_count](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-recurring-interval_count) | Die Anzahl der Intervalle zwischen Abrechnungen. Wenn Sie beispielsweise `interval=day` und `interval_count=30` festlegen, bedeutet dies, dass der/die Kund/in alle 30 Tage abgerechnet wird. Das höchste Intervall beträgt 1 Jahr (1 Jahr, 12 Monate oder 52 Wochen). | | [recurring.unit_amount_decimal](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-unit_amount_decimal) | Dasselbe wie [unit_amount](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-items-price_data-unit_amount) mit der zusätzlichen Möglichkeit, detailliertere Dezimalbeträge in Cent anzugeben, auf bis zu 12 Dezimalstellen. Sie können jeweils nur `unit_amount` oder `unit_amount_decimal` festlegen. | ### Abonnementdaten in Stripe importieren Nachdem Sie Ihre Quelldaten aufbereitet haben, können Sie damit beginnen, Abonnements in Stripe zu importieren. #### Tests Verwenden Sie eine *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes), um den Importvorgang des Preismodells mindestens einmal zu durchlaufen, bevor Sie diesen im Live-Modus ausführen. Sie müssen Ihr Skript neu zuordnen: - Wenn Sie die Daten in einer Sandbox löschen und den Import erneut ausführen. - Wenn Sie in den Live-Modus wechseln, weil die Preis-IDs in einer Sandbox und im Live-Modus unterschiedlich sind. In einer Sandbox können Sie [Test-Uhren](https://docs.stripe.com/billing/testing/test-clocks.md) verwenden, um das Fortschreiten der Abonnements im Zeitverlauf zu simulieren. Auf diese Weise können Sie sehen, wie die migrierten Abonnements in Produktion funktionieren. #### Abonnements erstellen Während Abonnements mit der [Subscription](https://docs.stripe.com/api/subscriptions.md) API erstellt werden können, empfehlen wir die Verwendung der [Subscription Schedules](https://docs.stripe.com/api/subscription_schedules.md) API. Mit dieser API können Sie Abonnements so planen, dass sie zu einem Zeitpunkt in der Zukunft starten. Dies ist beispielsweise die einzige Möglichkeit, monatliche Abonnements mehr als 30 Tage im Voraus zu starten. Bei Nutzung dieser Option können Sie außerdem den Import überprüfen, bevor Sie mit der Rechnungsstellung an Ihre Kunden/Kundinnen im Produktionsmodus beginnen. Darüber hinaus bietet die Subscription Schedules API `phases`, die viel mehr Flexibilität beim Definieren von Einstellungen wie Steuerverhalten, Einzugsmethode und Gutscheinverwendung in detaillierteren Intervallen bieten. Sie können auch unterschiedliche Verhaltensweisen für unterschiedliche Intervalle definieren. So könnten Sie beispielsweise einen Gutschein nur für die ersten 3 Monate eines Jahresabonnements einlösen. So erstellen Sie Abonnements, die am 1. Juni 2022 um 00:00 UTC starten. ```curl curl https://api.stripe.com/v1/subscription_schedules \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "default_settings[billing_cycle_anchor]=phase_start" \ -d "phases[0][items][0][price]={{PRICE_ID}}" \ -d start_date=1654066801 ``` ## Migration bestätigen Nachdem Sie Ihre Abonnements importiert haben, bestätigen Sie mithilfe der API, dass die Abonnements in Stripe existieren. Verwenden Sie die API [Abonnements eintragen](https://docs.stripe.com/api/subscriptions/list.md), um alle Abonnements in Stripe anzuzeigen. Sie können den Parameter [erstellt](https://docs.stripe.com/api/subscriptions/list.md#list_subscriptions-created) übergeben, um nach kürzlich erstellten Abonnements zu filtern. ```curl curl -G https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "created[gt]=1647294709" ``` ## See also - [Abonnementpläne](https://docs.stripe.com/api/subscription_schedules.md)