Connected accounts are sub-organizations that sit under your parent organization. They allow you to build multi-merchant platforms — such as marketplaces or SaaS products — where each merchant has their own isolated account for payments, balances, and reporting, while you manage them centrally through your platform API key.
Common use cases:
- A marketplace that processes payments on behalf of independent sellers
- A SaaS platform that provisions payment-enabled accounts for each of its business customers
- A platform that needs to separate funds across multiple merchants or brands
Connected accounts are only available via API key authentication. You must use your platform’s API key (not a user session) for all connected account operations.
List connected accounts
Retrieve all sub-organizations under your platform.
GET /api/v1/organizations/connected-accounts
curl https://api.syncgrampay.com/api/v1/organizations/connected-accounts \
-H "Authorization: Bearer YOUR_PLATFORM_API_KEY"
Response
[
{
"id": "org_seller_01",
"name": "Seller A",
"parent_organization_id": "org_platform_01",
"onboarding_status": "completed",
"payments_status": "active",
"country": "NG",
"current_env": "live",
"fee_handling": "org_pays_fee",
"enabled_capabilities": ["payments"],
"is_active": true,
"created_at": "2024-03-10T12:00:00Z",
"updated_at": "2024-06-01T09:00:00Z"
}
]
Create a connected account
Provision a new sub-organization under your platform.
POST /api/v1/organizations/connected-accounts
Request fields
Display name for the connected account.
Contact email address for the connected account. Must be unique across all organizations.
Two-letter ISO country code. Defaults to your platform organization’s country if omitted.
curl -X POST https://api.syncgrampay.com/api/v1/organizations/connected-accounts \
-H "Authorization: Bearer YOUR_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Seller B",
"contact_email": "seller-b@example.com",
"country": "GH"
}'
Response
{
"id": "org_seller_02",
"name": "Seller B",
"parent_organization_id": "org_platform_01",
"onboarding_status": "pending",
"payments_status": "inactive",
"country": "GH",
"current_env": "test",
"fee_handling": "org_pays_fee",
"enabled_capabilities": [],
"is_active": true,
"created_at": "2024-06-15T14:22:00Z",
"updated_at": "2024-06-15T14:22:00Z"
}
Get a connected account
Retrieve the details of a specific connected account.
GET /api/v1/organizations/{organization_id}
curl https://api.syncgrampay.com/api/v1/organizations/org_seller_02 \
-H "Authorization: Bearer YOUR_PLATFORM_API_KEY" \
-H "X-Connected-Account-ID: org_seller_02"
Act on behalf of a connected account
To make API calls in the context of a connected account — such as creating checkouts, initiating payouts, or listing transactions — pass the X-Connected-Account-ID header with any request.
X-Connected-Account-ID: org_seller_02
Syncgram Pay will scope the operation to the connected account instead of your platform organization.
Example: create a checkout on behalf of a connected account
curl -X POST https://api.syncgrampay.com/api/v1/payments/checkouts \
-H "Authorization: Bearer YOUR_PLATFORM_API_KEY" \
-H "X-Connected-Account-ID: org_seller_02" \
-H "Content-Type: application/json" \
-d '{
"pricing": {
"base_currency": "NGN",
"amount": "5000.00"
},
"customer_email": "buyer@example.com",
"customer_first_name": "Ada",
"customer_last_name": "Okafor",
"metadata": {
"order_id": "1042"
}
}'
Your platform API key authorizes the request. The X-Connected-Account-ID header determines which organization’s context the operation runs in.
Response fields
Unique identifier for the connected account.
Display name of the connected account.
The ID of your platform organization that owns this connected account.
Onboarding state of the connected account. One of pending, in_progress, or completed.
Whether the connected account can process payments. One of inactive, pending, or active.
Two-letter ISO country code for the connected account.
Active environment. Either test or live.
Fee handling mode. Either org_pays_fee or customer_pays_fee.
Capabilities active on this connected account, such as payments or payouts.
Whether this connected account is currently active.
Limitations
Connected accounts operate with the following restrictions:
- Connected accounts cannot create API keys. API keys are managed at the platform level only.
- Connected accounts cannot configure webhooks. Webhooks are registered on your platform organization and receive events for all connected accounts.
- A connected account cannot create its own connected accounts — nesting is not supported.