--- title: "Externally-Managed Subscriptions" slug: "externally-managed-subscriptions" updated: 2026-07-09T05:16:57Z published: 2026-07-09T05:16:57Z canonical: "help.frisbii.com/externally-managed-subscriptions" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.frisbii.com/llms.txt > Use this file to discover all available pages before exploring further. # Externally-Managed Subscriptions An **externally-managed subscription** is a subscription that is billed and managed entirely in your source system — Frisbii Media is used only for SSO and access rights. Customers cannot cancel these subscriptions through the Frisbii Media self-service portal, because Frisbii Media is not the invoicing party. Use this approach when: - You do not want to migrate an existing subscription's billing to Frisbii Media, but want to use Frisbii Media for login and access management - You want to offer existing subscribers a discount in Frisbii Media using access rules > [!NOTE] > **Prerequisite:** You must create an [**externally managed offer**](/frisbii-media/docs/extern-verwaltete-angebote) in the Frisbii Media backend first, before importing orders against it. --- ## Create an externally-managed order The import payload is similar to a regular subscription import, but uses `paymentMethod: "BILLING"` — indicating that Frisbii Media will not attempt to collect payment. ```php // @see https://api.frisbii-media.com/#tag/Order-Imports/operation/orderImport $import = [    'suppressMail' => true,    'purchase'     => false,    'items'        => [        [            'externalSystemId'   => 'Sync-4711', // your unique ID; used to find and update this subscription later            'plenigoOfferId'     => 'O_FAK3OFF3R',            'invoiceCustomerId'  => $customer['customerId'],            'paymentMethod'      => 'BILLING', // Frisbii Media will not collect payment            'deliveryCustomerId' => $customer['customerId'],            'deliveryAddressId'  => $deliveryAddress['addressId'],            'startDate'          => '2020-10-10T10:10:10.100Z',            'quantity'           => 1,        ],    ], ]; $importStatus = json_decode($client->request('POST', '/imports/orders', [    'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],    'json'    => $import, ])->getBody()->getContents(), true); ``` Note the `externalSystemId` — this is how you reference and update this specific subscription in all subsequent sync calls. --- ## Sync end date When the subscription ends in your source system, update the `endDate` in Frisbii Media by re-posting the import payload with the same `externalSystemId` and an `endDate` value. Frisbii Media will match the record by `externalSystemId` and update it. ```php $import = [    'suppressMail' => true,    'purchase'     => false,    'items'        => [        [            'externalSystemId'   => 'Sync-4711',            'plenigoOfferId'     => 'O_FAK3OFF3R',            'invoiceCustomerId'  => $customer['customerId'],            'paymentMethod'      => 'BILLING',            'deliveryCustomerId' => $customer['customerId'],            'deliveryAddressId'  => $deliveryAddress['addressId'],            'startDate'          => '2020-10-10T10:10:10.100Z',            'endDate'            => '2025-10-10T00:00:00.000Z', // subscription ends on this date            'quantity'           => 1,        ],    ], ]; $importStatus = json_decode($client->request('POST', '/imports/orders', [    'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],    'json'    => $import, ])->getBody()->getContents(), true); ``` --- ## Restart an ended subscription (Wiedereinweisung) If your source system reactivates a previously ended subscription, reset the `endDate` to `null`. Frisbii Media will remove the end date from the subscription, restoring active access. ```php $import = [    'suppressMail' => true,    'purchase'     => false,    'items'        => [        [            'externalSystemId'   => 'Sync-4711',            'plenigoOfferId'     => 'O_FAK3OFF3R',            'invoiceCustomerId'  => $customer['customerId'],            'paymentMethod'      => 'BILLING',            'deliveryCustomerId' => $customer['customerId'],            'deliveryAddressId'  => $deliveryAddress['addressId'],            'startDate'          => '2020-10-10T10:10:10.100Z',            'endDate'            => null, // removing endDate reactivates the subscription            'quantity'           => 1,        ],    ], ]; $importStatus = json_decode($client->request('POST', '/imports/orders', [    'headers' => ['X-plenigo-token' => eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9],    'json'    => $import, ])->getBody()->getContents(), true); ``` --- ## External managed vs. regular import | | Regular import | External managed | | --- | --- | --- | | **Who bills the customer?** | Frisbii Media (takes over from `nextBookingDate`) | Your source system (always) | | `paymentMethod` | e.g. `BANK_ACCOUNT` | `BILLING` | | **Customer can cancel in self-service?** | Yes | No | | `nextBookingDate` **required?** | Yes | No | | **Use case** | Full migration | SSO + access management only | --- ## API reference - [orderImport](https://api.plenigo.com/#tag/Order-Imports/operation/orderImport) ---