Switch from other payment analytics platforms to SubLoop with ease.
If you're currently using RevenueCat, here's how to migrate to SubLoop:
Export your historical data from RevenueCat and import it into SubLoop using our migration API:
// PHP example for bulk import
$subloop = new SubLoop('sk_your_api_key_here');
foreach ($revenueCatData as $transaction) {
$subloop->payments->create([
'customer_id' => $transaction['subscriber_id'],
'subscription_id' => $transaction['product_id'],
'amount' => $transaction['revenue'],
'currency' => $transaction['currency'],
'status' => $transaction['is_successful'] ? 'succeeded' : 'failed',
'payment_date' => $transaction['purchase_date'],
'metadata' => [
'migrated_from' => 'revenuecat',
'original_transaction_id' => $transaction['transaction_id']
]
]);
}
Replace RevenueCat SDK calls with SubLoop equivalents:
// RevenueCat
Purchases.logIn(customerID);
Purchases.purchaseProduct(product);
// SubLoop - track after your existing payment flow
const subloop = new SubLoop('sk_your_api_key');
await subloop.payments.createSuccessful(customerID, amount, currency, subscriptionId);
Moving from Stripe's built-in analytics to SubLoop provides more detailed insights:
Update your Stripe webhooks to also send data to SubLoop:
// In your Stripe webhook handler
if ($event->type === 'payment_intent.succeeded') {
$paymentIntent = $event->data->object;
// Your existing Stripe logic
// ...
// Add SubLoop tracking
$subloop->payments->createSuccessful(
customerId: $paymentIntent->customer,
amount: $paymentIntent->amount_received / 100,
currency: strtoupper($paymentIntent->currency),
subscriptionId: $paymentIntent->metadata->subscription_id ?? null
);
}
If you've built your own payment analytics, SubLoop can replace your custom solution:
Export your payment data and import it into SubLoop:
-- Export your existing payment data
SELECT
customer_id,
subscription_id,
amount,
currency,
status,
created_at as payment_date
FROM your_payments_table
WHERE created_at >= '2024-01-01';
Replace your custom analytics queries with SubLoop API calls:
SELECT
SUM(amount) as mrr
FROM payments
WHERE status = 'succeeded'
AND subscription_id IS NOT NULL
AND DATE_TRUNC('month', created_at) = DATE_TRUNC('month', CURRENT_DATE);
$mrr = $subloop->analytics->getMRR();
echo "Current MRR: $" . $mrr['mrr'];
Our migration team is here to help make your transition smooth: