1. Quick orientation
| Question | Answer |
|---|---|
| Who is this for? | Merchants who need to migrate data into UniBee or export existing information for BI/finance. |
| What objects can I import? | Users, Plans, Active Subscriptions, and Subscription History. |
| What can I export? | Any major dataset (users, plans, subscriptions, invoices, credits, reports) via UI or API. |
| How do I test safely? | Use your Sandbox org first, verify results, then repeat in Production. |
✅ Tip: Download the latest template right before filling it out. Templates change as UniBee evolves—using an old file is the #1 cause of import errors.
2. First things first
- Download UniBee’s Excel templates – In UniBee Admin Portal, open any data list with a
⋯ → Importbutton (for example,User Management → User List). Click Download template to grab the latest Excel file. All imports use these.xlsxtemplates; they already include required columns and guidance. - Minimal viable import – For teams that just need to bring existing customers online quickly:
- Create the plans you need (manually in Product & Plan or via the Plan APIs).
- Configure your payment gateways in UniBee (Settings → Payments).
- Import Active Subscriptions. The import job auto-creates any missing users, so once the subscriptions are in place, the system is ready for use.
- When you need more control – Move on to importing users and plans explicitly (details below) before adding subscriptions. This is helpful when you need precise external IDs, custom metadata, or audit requirements.
- Backup & permissions – Make sure you can see the
⋯ → Importmenu (Billing Admin or higher) and export the existing dataset before importing to preserve a rollback point.
3. Import playbook
3.1 Templates & entry points
| Task name | Portal entry | Template |
|---|---|---|
UserImport | User Management → User List → ⋯ → Import | Download template |
ActiveSubscriptionImport | Subscription → Subscription List → ⋯ → Import active subscription | Download template |
HistorySubscriptionImport | Subscription → Subscription List → ⋯ → Import subscription history | Download template |
Plan imports currently have no UI. If you need to bulk-create plans, call the Plan APIs directly (for example,All templates are Excel files (≤ 20 MB). Use UTF‑8 when exporting CSV versions to avoid encoding issues.POST /merchant/plan/create). Imported plans land inEditstatus, so you can review them before activating.
3.1 User import
| Field | Required | Description & tips |
|---|---|---|
Email | ✅ | Primary identifier. Must be unique per merchant. |
ExternalUserId | ➖ Recommended | Keep your legacy system’s user ID here for reconciliation and future sync jobs. |
FirstName / LastName | ➖ | Display name shown in UniBee UI and exports. |
Address, Phone | ➖ | Optional profile fields; populate them if you want support teams to see legacy contact info. |
- After import: Users are created in
ACTIVEstatus. Existing users can only be overwritten if they were previously imported by the same admin (UniBee tags each record withImportBy<memberId>to enforce this). No webhook fires; check Activity Logs forImportNew/ImportOverride.
3.2 Plan import (API workflow)
- How it works: There is no “Import plan” button in the UI today. Use the Plan APIs (
/merchant/plan/create,/merchant/plan/edit, etc.) to bulk-create plans based on the Excel template. For example:
- Key fields:
ExternalPlanId,PlanName,InternalName,ProductName,PlanType,PlanAmount,Currency,IntervalUnit,IntervalCount, plus optionalMetadataand trial settings. - After import: Plans stay in Edit status until you review and activate them. This lets you double-check pricing and descriptions before customers see them. Duplicates update descriptive/trial fields. No webhook fires; audit via Activity Logs.
3.3 Active subscription import
This is the heavy-lifter for migrations—you import a user’s ongoing subscription along with gateway/payment info.UI workflow
- Go to Subscription → Subscription List.
- Click the
Importbutton in the top-right corner and choose Import active subscription. - Download the Excel template if needed, fill in the rows, upload the file, and monitor the task in the Task Drawer.
API workflow
You can also call the API directly to import a single subscription:| Field | Required | Description & tips |
|---|---|---|
ExternalSubscriptionId | ✅ | External identifier from your legacy system; needed for overrides and debugging. |
Email / ExternalUserId | ✅ (pick one) | Used to locate or auto-create the user. Provide both when possible so you’re safe if emails change. |
PlanId / ExternalPlanId | ✅ (pick one) | Must reference an existing UniBee plan. When using ExternalPlanId, ensure it already exists. |
Gateway | ✅ | e.g., stripe, paypal, wire_transfer. The gateway must be configured in UniBee. |
GatewayPaymentType | ➖ | Required for gateways that expose sub-types (e.g., Payssion). |
StripeUserId + StripePaymentMethod | ➖ | Needed to keep Stripe auto-charge working. |
PaypalVaultId or PaypalAgreementToken | ➖ | Needed to keep PayPal auto-charge working. |
Quantity | ➖ | Defaults to 1; useful for seat-based subscriptions. |
CountryCode, VatNumber, TaxPercentage | ➖ | Recommended for VAT/GST compliance. |
CurrentPeriodStart / CurrentPeriodEnd | ✅ | UTC timestamps; End must be greater than “now”. |
BillingCycleAnchor, FirstPaidTime, CreateTime | ✅ | Control proration, reporting, and the next renewal. |
Features | ➖ | JSON column for custom features/metadata. |
- After import:
- Subscription status =
Active, type =UniBeeControl. - UniBee issues a zero-amount “catch-up” invoice so reports stay consistent.
- User defaults (country, gateway, payment method) update.
- Webhooks fire:
subscription.import.created(new record)subscription.import.override(overwriting an existing import by the same admin)- Downstream events triggered by the zero invoice, such as
invoice.paidanduser.metric.update, so your billing system sees a consistent timeline.
- Overrides are only allowed when the original subscription was imported by the same admin (metadata guard).
- Subscription status =
3.4 Subscription history import
Use this to backfill past billing cycles (for example, when you want N months of historical revenue in UniBee).UI workflow
- Go to Subscription → Subscription List.
- Click the
Importbutton and select Import subscription history. - Download the template, fill it out, upload, and track the background task just like other imports.
API workflow
Alternatively, import a single record via API:| Field | Required | Description & tips |
|---|---|---|
ExternalSubscriptionId | ✅ | Use the same ID as the active subscription so history lines up. |
PlanId / ExternalPlanId | ✅ | Points to the plan used during that billing period. |
Email / ExternalUserId | ✅ (pick one) | Same behavior as active import. |
Gateway | ✅ | Stored for auditing; UniBee does not charge anything here. |
CurrentPeriodStart, CurrentPeriodEnd | ✅ | Both must be in the past and End > Start. |
TotalAmount | ✅ | Period amount in cents. |
Quantity, CountryCode, TaxPercentage | ➖ | Optional context for analytics. |
- After import:
- UniBee creates an
Expiredsubscription record plus a timeline slice for reporting. - It does not create a live subscription or trigger billing—it is purely historical.
- Duplicate rows are rejected unless they belong to the same admin import.
- No webhook fires; rely on Activity Logs.
- UniBee creates an
3.5 Import flow (same for every task)
- Download the template → fill one row per record.
- Upload the file via the modal. UniBee immediately enqueues a background job.
- Monitor progress in the Task Drawer (
Queued → Running → Succeeded/Failed). - Download the annotated result file and check the
ImportResultcolumn. - Fix failed rows only, then re-upload.
4. Export playbook
4.1 Exports from list pages
Every major list has⋯ → Export. Apply filters first (date range, plan, status) and UniBee will export just that slice.
- Users:
userId,externalUserId,email,status,countryCode,defaultGatewayId, timestamps. - Plans:
planId,externalPlanId,planName,planType,amount,currency,interval, trial info. - Subscriptions:
subscriptionId,externalSubscriptionId,planName,status,gateway,amount,currency,currentPeriodStart/End,userId. - Transactions / Invoices: invoice/payment IDs, statuses,
totalAmount,taxAmount,currency,paymentMethod,gateway, timestamps.
4.2 Reports & Export Reports center
For standardized report packs (subscription inventory, invoice ledger, credit balance history, etc.), go to Reports & Export Reports. These jobs use a fixed schema suitable for finance/compliance and can be rerun for any historical period.4.3 API-driven exports
Need automation? Use two endpoints:POST /merchant/task/new_exportwith task name (e.g.,UserExport,SubscriptionExport,InvoiceExport,CreditTransactionExport,PlanExport,DiscountExport,UserDiscountExport,MultiUserDiscountExport). Include:payload: filters (date range, plan IDs, statuses, etc.).exportColumns(optional): specify exact columns.format:xlsx(default) orcsv.
GET /merchant/task/listto poll for status and retrievedownloadUrl.
/merchant/task/export_column_list with the task name to get every column key plus human-readable descriptions.
5. Validation & go-live checklist
- Spot-check – Open a few imported users/plans/subscriptions in the UI to confirm values (amounts, cycles, payment method, etc.).
- Billing smoke test – For active subscriptions, trigger a manual invoice or wait for the next renewal to ensure auto-charge succeeds with the imported payment token.
- Audit trail –
Admin Management → Activity LogsshowsImportNew,ImportOverride, and export events. Download logs if you need compliance evidence. - Communicate – Share final task IDs and validation notes with finance/support so everyone knows when UniBee becomes the source of truth.
6. Troubleshooting & support
- Upload rejected immediately → Most likely an outdated template or renamed columns. Download a fresh copy and reapply your data.
- “Task not found” → Check spelling/casing of the
taskparameter (e.g.,ActiveSubscriptionImport). - Gateway errors → Ensure Stripe/PayPal gateways are configured in UniBee; imports validate tokens against your credentials.
- Task stuck in “Running” → Large files can take several minutes. If still running after ~30 minutes, download the task log or contact UniBee Support with the task ID.
- Encoding issues → Save CSV files in UTF‑8, especially if your data includes non-English characters.

