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

Prev Next

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

Prerequisite: You must create an externally managed offer 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.

// @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.

$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.

$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