Who this is for
This guide is for teams that currently use the Pandabase Store API (with individual store credentials) and want to migrate to the Platform API for centralized merchant management, fee splitting, and unified reporting. If you are building a new integration from scratch, start with the Platform Overview instead.Before you begin
Make sure you have:- An approved Platform Partner account with
plt_andpsk_credentials - Access to the Platform sandbox environment
- A list of existing stores you want to migrate to platform-managed merchants
You do not need to shut down your Store API integration before starting the
migration. Both APIs can operate in parallel during the transition period.
Key differences
Authentication
| Store API | Platform API | |
|---|---|---|
| Credential | Bearer token (stk_) or HMAC (shk_) | Platform ID (plt_) + HMAC-SHA512 (psk_) |
| Scope | Single store | All merchants on your platform |
| Merchant context | Implicit (bound to token) | Explicit (X-Merchant-Context header) |
| Signing algorithm | HMAC-SHA256 | HMAC-SHA512 |
Authorization: Bearer stk_xxx header with the platform authentication scheme. Every request that targets a specific merchant must include the X-Merchant-Context header.
Payments
| Store API | Platform API | |
|---|---|---|
| Object | Checkout session | Platform Intent |
| Endpoint | POST /v2/checkouts | POST /v2/platforms/intents |
| Fee control | No (Pandabase fee only) | Yes (platformFee field) |
| Capture modes | Automatic only | Automatic or manual |
| Refund window | 30 days | 180 days |
| Multi-merchant | No | Yes (via X-Merchant-Context) |
platformFee to each intent. If you need to verify orders before charging, use captureMethod: "manual".
Merchants
| Store API | Platform API | |
|---|---|---|
| Creation | Manual signup on pandabase.io | Programmatic via Provisioning API |
| Verification | Self-service by merchant | Pandabase.js Verification SDK embedded in your flow |
| Management | Each merchant manages their own store | Your platform manages all merchants centrally |
| Capabilities | All enabled by default | Granular, per-merchant, controlled by your platform |
Settlements
| Store API | Platform API | |
|---|---|---|
| Schedule | Merchant requests payouts manually | T+2 automatic settlement to merchants |
| Fee splitting | Not available | Automatic platform fee on every transaction |
| Platform payouts | Not applicable | Weekly platform fee payouts |
| Holds and transfers | Not available | Full Money Management API |
Webhooks
| Store API | Platform API | |
|---|---|---|
| Events | PAYMENT_* events | INTENT_*, MERCHANT_*, SETTLEMENT_* events |
| Scope | Per store | Platform-wide (includes merchant context) |
| Signing | HMAC-SHA256 | HMAC-SHA512 |
| Configuration | Per store in dashboard | Platform-level via API |
Migration steps
Step 1: Set up your platform integration
Build and test the Platform API integration in the sandbox environment alongside your existing Store API integration. Both can run in parallel.Configure platform authentication
Implement the HMAC-SHA512 signing logic using your
psk_ secret. Test against the sandbox API.Set up platform webhooks
Register a new webhook endpoint that handles Platform API events. Keep your existing Store API webhook endpoint running.
Test merchant provisioning
Create test merchants in the sandbox and verify the full lifecycle: provisioning, verification, capability activation.
Step 2: Migrate existing merchants
For each existing Pandabase store that you want to bring under platform management, provision a new merchant sub-account.Step 3: Update payment creation
Replace checkout session creation with Platform Intent creation. Map your existing payment logic to the new API. Before (Store API):Step 4: Update webhook handling
Add handlers for Platform API events alongside your existing Store API handlers. Event mapping:| Store API event | Platform API event |
|---|---|
PAYMENT_PENDING | INTENT_CREATED |
PAYMENT_PROCESSING | INTENT_PROCESSING |
PAYMENT_COMPLETED | INTENT_COMPLETED |
PAYMENT_FAILED | INTENT_FAILED |
PAYMENT_REFUNDED | INTENT_REFUNDED |
PAYMENT_DISPUTED | INTENT_DISPUTED |
PAYMENT_DISPUTE_WON | INTENT_DISPUTE_WON |
PAYMENT_DISPUTE_LOST | INTENT_DISPUTE_LOST |
| (no equivalent) | MERCHANT_* events |
| (no equivalent) | SETTLEMENT_* events |
Step 5: Update frontend payment flow
If you use Pandabase.js for payment forms, update the initialization to use your platform credentials. Before (Store API):Step 6: Cut over traffic
Once your Platform API integration is tested and all merchants are provisioned:Enable dual-write
For a transition period, create both a checkout session and a Platform
Intent for each payment. Route customers to the Platform Intent. Keep the
Store API path as a fallback.
Monitor
Verify that Platform Intent payments are completing successfully, webhooks
are being delivered, and settlements are processing. Compare completion
rates between the two paths.
Disable Store API path
Once you are confident the Platform API is working correctly, remove the
Store API payment path. Stop creating checkout sessions.
Step 7: Clean up
After the migration is complete:- Remove Store API authentication code
- Remove Store API webhook handlers
- Remove the old credential mapping
- Update internal documentation and runbooks
- Notify merchants (if applicable) about any changes to their experience
Parallel operation
During migration, both APIs can run simultaneously without conflict. Payments created through the Store API and Platform API are completely independent. There is no risk of duplicate charges or settlement conflicts. The only constraint is that a single payment must be created through one API or the other. You cannot create a checkout session and a Platform Intent for the same transaction.Timeline
There is no deadline to complete the migration. You can run both APIs indefinitely if needed. However, once all merchants are provisioned on the Platform API, there is no benefit to maintaining the Store API integration. For most platforms, the migration takes 2 to 4 weeks:| Week | Milestone |
|---|---|
| 1 | Platform API integration built and tested in sandbox |
| 2 | Merchants provisioned and verified |
| 3 | Dual-write enabled, traffic gradually shifted |
| 4 | Store API path disabled, old credentials revoked |
Common issues
Merchants stuck in PENDING_REVIEW
Merchants provisioned during migration go through the standard compliance review. If review is taking longer than expected, check that the merchant completed verification through the Pandabase.js Verification SDK. Contact platforms@pandabase.io for bulk migration assistance.Webhook signature failures after migration
The most common cause is using SHA-256 instead of SHA-512. Platform webhooks use HMAC-SHA512. Double-check your verification function.Settlement timing differences
Store API payouts are merchant-initiated. Platform API settlements are automatic on a T+2 schedule. Merchants who are used to controlling their own payout timing may notice funds arriving on a different cadence. Communicate this change proactively.Platform fee not appearing
Ensure you are including theplatformFee field in every intent creation request. If omitted, it defaults to 0 and you will not earn fees on that transaction.
Support
For migration assistance:- Email: platforms@pandabase.io with subject
[MIGRATION] - Bulk migrations (50+ merchants): Contact us for expedited review and dedicated support
